当前位置: 首页 > news >正文

乌审旗建设局网站四川省工程造价总站官网

乌审旗建设局网站,四川省工程造价总站官网,优设网字体,企业推广的方式221. 最大正方形 看到这个题目真能立马想到dp吗?貌似很难,即使知道是一个dp题也很难想到解法。 直观来看,使用bfs以一个点为中点进行遍历,需要的时间复杂度为 O ( n 2 m 2 ) O(n^2m^2) O(n2m2) 但是可以很容易发现,…

221. 最大正方形
在这里插入图片描述
看到这个题目真能立马想到dp吗?貌似很难,即使知道是一个dp题也很难想到解法。

直观来看,使用bfs以一个点为中点进行遍历,需要的时间复杂度为 O ( n 2 m 2 ) O(n^2m^2) O(n2m2)

但是可以很容易发现,如果求以一个点为角 构成的最大正方形,可以通过其他周围的点作为角来快速找到这个点的最大正方形。

我们用数组存以该点为右下角,左下角,左上角,右上角的最大正方形,可以通过周围的转移,然后求出以它为“中心”构成的最大正方形。于是有如下代码

class Solution {
public:int maximalSquare(vector<vector<char>>& matrix) {int n = matrix.size();int m = matrix[0].size();if(n == 1 && m == 1) return matrix[0][0];vector<vector<vector<int>>> dp(n, vector<int>(m, vector<int>(4, 0)));int ans = 0;for(int j = 0; j < m; ++ j){dp[0][j][0] = dp[0][j][1]= dp[0][j][2] = dp[0][j][3] = matrix[0][j];}for(int i = 1; i < n - 1; ++ i){dp[i][0][0] = dp[i][0][1] = dp[i][0][2] = dp[i][0][3] = matrix[i][0];for(int j = 1; j < m - 1; ++ j){dp[i][j][0] = min(dp[i - 1][j][0], min(dp[i - 1][j - 1][0], dp[i][j - 1][0])) + 1;dp[i][j][1] = min(dp[i - 1][j][1], min(dp[i - 1][j + 1][1], dp[i][j + 1][1])) + 1;····}//最后一列}//最后一行return ans * ans;}
};

但是实际上,以该点为右下角就足以解决这个问题,因为对于任何一个最大正方形而言,它一定有一个右下角,那么找到这个右下角能构成的最大正方形就是这个正方形了

class Solution {
public:int maximalSquare(vector<vector<char>>& matrix) {int n = matrix.size();int m = matrix[0].size();if(n == 1 && m == 1) return matrix[0][0] - '0';vector<vector<int>> dp(n, vector<int>(m, 0));int ans = 0;for(int i = 0; i < m; ++ i){dp[0][i] = matrix[0][i] - '0';ans = max(ans, dp[0][i]);}for(int i = 1; i < n; ++ i){dp[i][0] = matrix[i][0] - '0';ans = max(ans, dp[i][0]);for(int j = 1; j < m; ++ j){if(matrix[i][j] == '0') dp[i][j] = 0;else dp[i][j] = min(dp[i - 1][j], min(dp[i][j - 1], dp[i - 1][j - 1])) + 1;ans = max(ans, dp[i][j]);}}return ans * ans;}
};
http://www.yayakq.cn/news/482114/

相关文章:

  • 山东网站建设系统毕业设计网站建设
  • 上海建设门户网站wordpress钉钉登陆
  • 网站建设相关标准iis建站安装wordpress
  • 汕头网站排名推广360免费建站官网
  • 云梦县城乡建设局网站wordpress购物车
  • 株洲建设网站制作福田欧曼前四后八新车报价
  • 购买网站服务器做网站网站建设
  • 部门门户网站建设请示桂林手机网站建设
  • wordpress不用php无锡seo优化
  • 网站建设越来越难做网络推广的基本方法有哪些
  • 娱乐网站制作网站建设怎么接单
  • 网站是别人做的我这就没有根目录计算机培训班价格
  • 网站设计的技术选择北京手机建站模板
  • 网站如何生成二维码wordpress 发布慢
  • 将自己做的网站发布到wordpress登录页名
  • 网站建设图片怎么调小俊哥网站建设
  • 优化网站seo策略自助建站源码php
  • 哪些公司做网站开发爬虫 网站开发实例
  • 西安做网站 好运网络网站的建设有什么好处
  • 济南 建网站门头沟网站建设
  • 申请自己的网站网络规划设计师教程 pdf
  • 如何将网站做的更美观温州 外贸网站制作
  • 做国际网站要多少钱免费云服务器
  • 做网站得先注册域名吗零售网站开发
  • 上海市住房与城乡建设部网站广州网站优化外包
  • 石家庄网站开发报价若尊二级域名分发
  • 网站做动态虚线做橡胶的网站
  • 腾讯云网站搭建流程服务公司起名
  • 网站栏目设计模板徐州信息网查询中心
  • 网站建设中备案百度网盟推广组所拥有的定向功能