在只有0和1的矩阵中找出边长最大的全1矩阵
来源:互联网 发布:如何让增加淘宝流量 编辑:程序博客网 时间:2024/04/28 09:25
在一个A*B的矩阵中,只包含0和1,从矩阵中找出边长最大的全1子矩阵。
输入行数和列数
输出最大边长。
#include <iostream>using namespace std;int x[400][400] = {0};int upperbound[400][400] = {0};int a(0),b = 0,temp(0);//更新为,本行中,x[i][j]的前面连续的1的个数+1;void pre(){ for (int i = 0;i<a;i++) { for (int j = 1;j<b;j++) { if (x[i][j] == 1&&x[i][j-1] !=0) { x[i][j] = x[i][j-1] +1; } } }}//上下检索,大于本身,则cnt+1int serach_up_down(int row,int col){ int cnt = 1,val = x[row][col]; for (int i = row-1;i>=0;i--) { if (x[i][col] >=val) { cnt++; } else { break; } } for (int i = row+1;i<a;i++) { if (x[i][col]>=val) { cnt++; } else { break; } } if (val>cnt) { return cnt; } else { return val; }}//循环遍历找出int getMax(){ int length = 0; for (int i = 0 ;i<a;i++) { for (int j = 0;j<b;j++) { if (x[i][j] != 0) { int val = serach_up_down(i,j); if (val>length) { length = val; } } } } return length;}int main(){ cout<<"请输入行数和列数"<<endl; cin>>a>>b; for (int i = 0;i<a;i++) { for (int j = 0;j<b;j++) { cin>>temp; x[i][j] = temp; } } pre(); //预处理 cout<<getMax()<<endl;}
0 0
- 在只有0和1的矩阵中找出边长最大的全1矩阵
- 求全1的最大正方形的边长 和 全1的最大子矩阵的面积 和POJ 2559 最大直方图
- 面积最大的全1子矩阵
- 面积最大的全1子矩阵
- 面积最大的全1子矩阵
- 最大子矩阵全1的个数
- 全是1的最大子矩阵
- 0 1矩阵内寻找最大m*m的全0矩阵块
- 20.找出矩阵中最大的数存入数组中
- 一个矩阵中最大的二维矩阵(元素和最大)
- 求最大全1子矩阵的一些探讨
- 找到最大全1的矩阵(雅虎面试)
- 动态规划-面积最大的全1子矩阵
- 题目1497:面积最大的全1子矩阵
- 题目1497:面积最大的全1子矩阵
- JD 1497:面积最大的全1子矩阵
- 九度1497:面积最大的全1子矩阵
- 51nod 1158:全是1的最大子矩阵
- 交互中的模态与非模态
- nyoj-257 郁闷的C小加(一)【表达式求值】
- 学习嵌入式的方法和步骤
- 由TCODE找到相应的增强
- Microsoft SQL Server 2008 安装说明
- 在只有0和1的矩阵中找出边长最大的全1矩阵
- 成田机场航班查询
- Jsp自定义标签 二 tld 详解
- 在VMware中安装Archlinux-2014.09.03-dual系统步骤
- 浅谈对插件Plugin设计方法的认识
- Linux Kernel系列一:开篇和Kernel启动概要
- 【python】自动获取豆瓣电影信息
- 子线程循环 10 次,接着主线程循环 100 次
- DuiLib通用窗口类WindowImplBase封装