zoukankan      html  css  js  c++  java
  • 九度 1497:面积最大的全1子矩阵

    题目描述:

    在一个M * N的矩阵中,所有的元素只有0和1,从这个矩阵中找出一个面积最大的全1子矩阵,所谓最大是指元素1的个数最多

    Leetcode 原题, 没有案例就是跪, WA 到没脾气

    代码 未通过九度测试

    #include <iostream>
    #include <stdio.h>
    #include <vector>
    #include <deque>
    #include <memory.h>
    using namespace std;
    int m, n;
    int matrix[1001][1001];
    int rectangle[1001];
    
    int largestHis() {
        int global = 0;
        deque<int> stack;
        for(int i = 0; i < n; i ++) {
            if(!stack.size()) {
                stack.push_back(i);
            }else if(stack.back() <= rectangle[i]) {
                stack.push_back(i);
            }else {
                int hei = stack.back();
                stack.pop_back();
                int left = (stack.empty())? 0:rectangle[stack.back()];
                global = max(global, (i-left-1)*rectangle[hei]);
                i--;
            }
        }
        return global;
    }
    
    int main() {
        while(scanf("%d%d", &m, &n) != EOF) {
            for(int i = 0; i < m; i ++) {
                for(int j = 0; j < n; j ++) {
                    scanf("%d", &matrix[i][j]);
                } 
            }
            memset(rectangle, 0, sizeof(rectangle));
            int global = 0;
            for(int i = 0; i < m; i ++) {
                for(int j = 0; j < n; j ++) {
                    if(matrix[i][j] == 0) {
                        rectangle[j] = 0;
                    }else{
                        rectangle[j] ++;
                    }
                    //cout << rectangle[j] << " ";
                }
                //cout << endl;
    
                global = max(global, largestHis());
            }
            cout << global << endl;
        }
        return 0;
    }
  • 相关阅读:
    JS实例
    第一章 机器学习基础
    事件与信号
    微信公众号开发实例
    php学记笔记之函数用途
    php漏洞修复 禁用函数
    删除MYSQL账号多于的空用户
    MySql 建表、添加字段、修改字段、添加索引SQL语句写法
    php对二维数据进行排序
    iis支持IPA和APK文件下载
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3585387.html
Copyright © 2011-2022 走看看