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

地方旅游网站建设方案seo优化技术排名

地方旅游网站建设方案,seo优化技术排名,深圳电梯广告制作公司网站,如何用visual做网站题目链接 Leetcode.1139 最大的以 1 为边界的正方形 Rating : 1744 题目描述 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。 如果不存在,则返回 0。…

题目链接

Leetcode.1139 最大的以 1 为边界的正方形 Rating : 1744

题目描述

给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。

如果不存在,则返回 0。

示例 1:

输入:grid = [[1,1,1],[1,0,1],[1,1,1]]
输出:9

示例 2:

输入:grid = [[1,1,0,0]]
输出:1

提示:

  • 1<=grid.length<=1001 <= grid.length <= 1001<=grid.length<=100
  • 1<=grid[0].length<=1001 <= grid[0].length <= 1001<=grid[0].length<=100
  • grid[i][j]为 0 或 1

分析:

使用 dp 求解,我们定义 f(i,j,0)和f(i,j,1)f(i,j,0)和f(i,j,1)f(i,j,0)f(i,j,1)分别为以点 (i,j)结尾,向左 和 向上的连续 1的个数。

f(i,j,0)>0和f(i,j,1)>0f(i,j,0) > 0和f(i,j,1) > 0f(i,j,0)>0f(i,j,1)>0 的情况下,我们取 d=min(f(i,j,0),f(i,j,1))d = min(f(i,j,0),f(i,j,1))d=min(f(i,j,0),f(i,j,1))

遍历kkk (0<=k<=d)(0<=k<=d)(0<=k<=d),判断 f(i−k+1,j,0)>=k和f(i,j−k+1,1)>=kf(i-k+1,j,0) >= k 和 f(i,j-k+1,1) >= kf(ik+1,j,0)>=kf(i,jk+1,1)>=k,如果条件成立,说明可以构成一个最后一点是 (i,j),边长为 k的正方形。

时间复杂度:O(m∗n∗min(m∗n))O(m*n*min(m*n))O(mnmin(mn))

C++代码:

class Solution {
public:int largest1BorderedSquare(vector<vector<int>>& grid) {int m = grid.size(),n = grid[0].size();int f[m+1][n+1][2];memset(f,0,sizeof f);int ans = 0;for(int i = 1;i <= m;i++){for(int j = 1;j <= n;j++){//为1就记录if(grid[i-1][j-1]){f[i][j][0] = 1 + (j - 1 >= 1 ? f[i][j-1][0] : 0);f[i][j][1] = 1 + (i - 1 >= 1 ? f[i-1][j][1] : 0);}if(f[i][j][0] > 0 && f[i][j][1] > 0){int d = min(f[i][j][0],f[i][j][1]);//倒序判断能构成正方形的最大边长for(int k = d;k >= 0;k--){if(i-k+1 >= 1 && j-k+1 >= 1 && f[i-k+1][j][0] >= k && f[i][j-k+1][1] >= k){ans = max(ans,k*k);break;}}}}}return ans;}
};

Java代码:

class Solution {public int largest1BorderedSquare(int[][] grid) {int m = grid.length,n = grid[0].length;int[][][] f = new int[m+1][n+1][2];int ans = 0;for(int i = 1;i <= m;i++){for(int j = 1;j <= n;j++){if(grid[i-1][j-1]==1){f[i][j][0] = 1 + (j - 1 >= 1 ? f[i][j-1][0] : 0);f[i][j][1] = 1 + (i - 1 >= 1 ? f[i-1][j][1] : 0);}if(f[i][j][0] > 0 && f[i][j][1] > 0){int d = Math.min(f[i][j][0],f[i][j][1]);for(int k = d;k >= 0;k--){if(i-k+1 >= 1 && j-k+1 >= 1 && f[i-k+1][j][0] >= k && f[i][j-k+1][1] >= k){ans = Math.max(ans,k*k);break;}}}}}return ans;}
}
http://www.mnyf.cn/news/36089.html

相关文章:

  • 外贸谷歌网站推广千锋教育培训多少钱
  • 网站建设项目报告公司seo是指什么意思
  • 网站如何做长尾词排名360优化大师最新版
  • 北京医疗网站建设公司搜索引擎优化的英语简称
  • 山东网站营销优化开发搜索引擎营销优化
  • 网站建设企业邮箱制作网站网络营销和网络推广
  • 页游平台网站网站推广的技术有哪些
  • 洛阳建网站公司汕头网站排名优化
  • dreamwearver做网站地图百度收录网站链接入口
  • html做的网站排版错误苏州网站建设书生商友
  • 旅游网站的设计方案怎么做搜索广告优化
  • 天津企业网站建设交换友链平台
  • 手机网站制作案例百度秒收录蜘蛛池
  • 新闻网站建设管理制度windows优化大师是官方的吗
  • 怎么做网站访问统计二次感染即将大爆发
  • 网站开发合同审核要点企业网站建设方案范文
  • 如何做自己网站平台电脑培训学校课程
  • 如何创建一个自己公司网站百度关键词优化公司
  • 阿里云网站的网页怎么做南昌seo排名外包
  • 宁夏做网站公司网站推广app下载
  • 动态网站开发教案站长工具高清
  • 免费网站建设排行榜互联网营销方法有哪些
  • 网站首页图片做多大视频推广平台
  • 网站框架建设企业查询免费
  • 中投中原建设有限公司官方网站百度网盟推广官方网站
  • 奉贤网站建设专家网络优化论文
  • 如何做网站认证免费域名注册查询
  • 什么网站可以做字体效果好深圳百度seo代理
  • 企业网站的建立不能缺少哪些细节小红书广告投放平台
  • 政府网站建设园林绿化推广引流平台