每日一练——求一个只包含0、1的矩阵中只包含1的最大子矩阵大小
来源:互联网 发布:谷阿莫华尔街之狼 知乎 编辑:程序博客网 时间:2024/04/28 12:13
题目描述:
给定一个无序矩阵,其中只有1和0两种值,求只含有1的最大正方形的大小。
例如给定如下矩阵:
1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Return 4
int max_square(vector<vector<char>>& matrix) { int row = matrix.size(); int col = matrix[0].size(); vector<vector<int> > dp(row+1, vector<int>(col+1, 0)); for (int i = 1; i <= row; i++) { for (int j = 1; j <= col; j++) { if (matrix[i-1][j-1] == '0') dp[i][j] = 0; else { dp[i][j] = min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1]) + 1; if (dp[i][j] > max) max = dp[i][j]; } } } return max * max;}
题目描述:
给定一个无序矩阵,其中只有1和0两种值,求只含有1的最大矩阵的大小。
例如给定如下矩阵:
1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0return 6
int max_rec(int height[], int n){if (height == NULL || n == 0){return 0;}int max_area = 0;stack<int> stk;for (int i = 0; i < n; i++){while (!stk.empty() && height[i] <= height[stk.top()]){int j = stk.top(); stk.pop(); int k = stk.empty() ? -1 : stk.top(); int cur_area = (i - k - 1) * height[j]; max_area = max(max_area, cur_area);} stk.push(i);} while (!stk.empty()) {int j = stk.top(); stk.pop(); int k = stk.empty() ? -1 : stk.top(); int cur_area = (n - k -1) * height[j]; max_area = max(max_area, cur_area); } return max_area;}int max_square(vector<vector<int> >& matrix) { int row = matrix.size(); int col = matrix[0].size();int max_area = 0;int *height = new int[col];for (int i = 0; i < col; i++){height[i] = 0;}for ( i = 0; i < row; i++){for (int j = 0; j < col; j++){height[j] = (matrix[i][j] == 0) ? 0 : height[j] + 1;}max_area = max(max_area, max_rec(height, col));}return max_area;}
0 0
- 每日一练——求一个只包含0、1的矩阵中只包含1的最大子矩阵大小
- 求一个只包含0、1的矩阵中只包含1的最大子矩阵大小
- 在一个只包含0,1的二维数组中找到最大矩形的面积
- 求一个只包含0,1,-1的数组,和为0的最长子串的长度
- 求一个矩阵的最大子矩阵
- 求最大子矩阵的大小——C++实现
- 求最大子矩阵的大小 + 栈
- 求最大子矩阵的大小
- 求最大子矩阵的大小
- 将一个稀疏矩阵从一个二维数组转变成只包含非零结点的多链表
- 【每日面试题】求一个矩阵中最大的二维矩阵(元素和最大)
- 每日一道算法题:求一个矩阵中最大的二维矩阵(元素和最大)
- 【牛课堂第二季】第三章 只含1的最大子矩阵
- 每日一练——矩阵中的最大递增路径
- 面试题:给定一个数组,数组中只包含0和1。请找到一个最长的子序列,其中0和1的数量是相同的
- 求一个矩阵中最大的二维子矩阵(元素和最大)
- 求一个矩阵中最大的二维子矩阵(元素和最大)
- 求一个矩阵最大子矩阵的算法模板
- 学习、探究Java设计模式——装饰者模式
- 初识Spring
- Mysql安装、SQLyog-11.2.5-0.x64客户端安装
- Linux下redis的安装
- SDUT3404数据结构实验之排序七:选课名单
- 每日一练——求一个只包含0、1的矩阵中只包含1的最大子矩阵大小
- 自定义连接池
- pinyin4j使用示例(支持多音字)
- android studio svn设置忽略文件
- 按键监听实现Fragment跳转
- UVA10600 ACM Contest and Blackout (次小生成树)
- 大数运算(C++)
- VIM命令模式下命令
- 静态链接库 VS 动态链接库