zoukankan      html  css  js  c++  java
  • 4.17寻找矩阵中的鞍点

    鞍点:某个矩阵中的某个元素,在该行中最大,在该列中最小;一个矩阵中也可能没有鞍点,所以一个矩阵中存在鞍点也只能只有一个。

    #include <iostream>
    #include<cstdio>
    using namespace std;
    
    int getSaddlePoint(int *x,int *y,int (*a)[5],int m,int n) {
    	int max,i,j,k,flag;
    	for(i=0;i<m;i++) {
    		max=0;
    		flag=1;
    		for(j=1;j<n;j++) {
    			if(a[i][j]>a[i][max])
    				max=j;//max记录第i行最大值的列数,找出第i行中的最大元素的位置a[i][max] 
    		}
    		
    		for(k=0;k<n;k++)	
    			if(a[i][max]==a[i][k] && max!=k) {
    				flag=0;
    				break;
    			}
    			if(flag==1) 
    			for(k=0;k<m;k++) {  //判断a[i][max]是否是本列中最小的 
    				if(a[k][max]<=a[i][max] &&k!=i) {
    					flag=0;
    					break;
    				}
    			}
    			
    			if(flag==1) {//找到鞍点,用x、y返回,程序结束返回 
    				*x=i;
    				*y=max;
    				return 1;
    			}
    	}
    	return 0;
    } 
    int main() {
    	int a[5][5],i,j,x,y;
    	for(i=0;i<5;i++)
    		for(j=0;j<5;j++)
    			cin>>a[i][j];
    			
    	if(getSaddlePoint(&x,&y,a,5,5))
    		cout<<"SaddlePoint is at "<<x+1<<" "<<y+1;
    	else
    		cout<<"NO SaddlePoint"<<endl; 
        return 0;
    }
    

      

    拥抱明天! 不给自己做枷锁去限制自己。 别让时代的悲哀,成为你人生的悲哀。
  • 相关阅读:
    bfs,队列
    Wannafly挑战赛22 A计数器(裴蜀定理 gcd)
    素数筛模板
    HDU
    HDU
    控制精度-----直接截取,不需四舍五入
    jstl下载与配置
    B. Treasure Hunt
    动态数组vector
    Manacher算法
  • 原文地址:https://www.cnblogs.com/dd2hm/p/6773315.html
Copyright © 2011-2022 走看看