zoukankan      html  css  js  c++  java
  • 刷题221. Maximal Square

    一、题目说明

    题目221. Maximal Square,给一个0和1组成的矩阵,计算包括1的最大正方形。

    二、我的解答

    这个题目“似曾相识”,用dp可以解决。dp[i][j]表示从该节点到右下角,连续正方形的边长:

    class Solution{
    	public:
    		int maximalSquare(vector<vector<char>>& matrix){
    			if(matrix.empty()) return 0;
    
    			int row = matrix.size();
    			int col = matrix[0].size();
    			vector<vector<int>> dp(row,vector<int>(col,0));
    			int maximal = 0;
    			for(int i=row-1;i>=0;i--){
    				for(int j=col-1;j>=0;j--){
    					if(matrix[i][j]=='0'){
    						dp[i][j] = 0;
    					}else{
    						if(i==(row-1) || j==(col-1)){
    							dp[i][j] = 1;
    							if(dp[i][j]>maximal) maximal = dp[i][j];
    						}else{
    							dp[i][j] = 1 + min(min(dp[i+1][j],dp[i][j+1]),dp[i+1][j+1]);
    							if(dp[i][j]>maximal) maximal = dp[i][j];
    						}
    					}
    				}
    			}
    			return maximal*maximal;
    		} 
    };
    

    性能如下:

    Runtime: 20 ms, faster than 81.76% of C++ online submissions for Maximal Square.
    Memory Usage: 11.1 MB, less than 62.96% of C++ online submissions for Maximal Square.
    

    三、优化措施

    所有文章,坚持原创。如有转载,敬请标注出处。
  • 相关阅读:
    提单管理
    SAP Using Text Modules in Adobe Forms
    创建设备任务清单
    HR常用事务代码
    SAP 如何查看用户登录信息
    abap常用函数
    CK13物料价格评估的数据ALV显示
    常用事务代码
    计算物料制造成本估算,比较重要的表
    IT_sort用法实例
  • 原文地址:https://www.cnblogs.com/siweihz/p/12287262.html
Copyright © 2011-2022 走看看