zoukankan      html  css  js  c++  java
  • 矩阵的局部极大值

    给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。

    输入格式:

    输入在第1行中给出矩阵A的行数M和列数N(3<=M,N<=20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。

    输出格式:

    每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号递增输出。若没有局部极大值,则输出“None 总行数 总列数”。

    输入样例1:
    4 5
    1 1 1 1 1
    1 3 9 3 1
    1 5 3 5 1
    1 1 1 1 1
    
    输出样例1:
    9 2 3
    5 3 2
    5 3 4
    
    输入样例2:
    3 5
    1 1 1 1 1
    9 3 9 9 1
    1 5 3 5 1
    
    输出样例2:
    None 3 5
    

    #include<stdio.h>

    int main(){
      int n,m,count=0;
      scanf("%d %d",&n,&m);
      //int i=0,j=0;
      int num[n][m];
      for(int i=0;i<n;i++){ for(int j=0;j<m;j++){
          scanf("%d",&num[i][j]);
        }
      }
      //int k;
      for(int i=1;i<n-1;i++){
        for(int j=1;j<m-1;j++){
          //k=num[i][j];
          if(num[i][j]>num[i][j-1] && num[i][j]>num[i][j+1] && num[i][j]>num[i-1][j] && num[i][j]>num[i+1][j]){
            printf("%d %d %d ",num[i][j],i+1,j+1);count++;
          }
        }
      }
      if(count==0){
        printf("None %d %d ",n,m);
      }
      return 0;
    }

    ps:需要注意变量的作用域。

  • 相关阅读:
    java解析xml的几种方式
    Android Studio 问题解决List
    Android 无线调试方法
    Android 单选/复选控件
    clr
    jquery.metadata.js使用分析
    更改新建Asp.net WebForm的模板 的方法
    获取定位数据
    简易水平仪实现
    简易指南针实现
  • 原文地址:https://www.cnblogs.com/emochuanshuo/p/3918523.html
Copyright © 2011-2022 走看看