764. Largest Plus Sign


题目大意:
就是一个由1和0组成的正方形矩阵,求里面最大的加号的大小,这个大小就是长度。
什么鬼啊,本来想自己想的,结果看了半天没看懂具体什么意思,然后查了下题解,希望有人说一下意思,结果一上来就是思路,还直接动态规划四个大字,我也是呵呵了
思路一:暴力Brute Force
就是用i, j 循环每一个位置,判断该位置的上下左右的最长“1序列”,复杂度大概是n3
***这个据说过不了
思路二:动态规划Dynamic Programming
说实话看完源码才想到的,感觉挺好的,直接看源码大把,很好理解,反正大概就是正向扫一遍,连续的1递增,比如0111011就是0123012,然后反向再扫一遍就是,取最小值。0121011
然后从上到下扫一遍,再从下到上扫一遍,同样取最小值
class Solution {
public:
int orderOfLargestPlusSign(int N, vector<vector<int>>& mines) {
int map[][];
memset(map,,sizeof(map));
for(int i=;i<mines.size();i++)
{
map[mines[i][]][mines[i][]] = ;
}
int dp[][];
memset(dp,,sizeof(dp));
for(int i=;i<N;i++) {
int count = ;
for(int j=;j<N;j++) {
count = map[i][j]==?++count:;
dp[i][j] = count;
}
count = ;
for(int j=N-;j>=;j--) {
count = map[i][j]==?++count:;
dp[i][j] = min(count, dp[i][j]);
}
}
for(int i=;i<N;i++) {
int count = ;
for(int j=;j<N;j++) {
count = map[j][i]==?++count:;
dp[j][i] = min(count, dp[i][j]);
}
count = ;
for(int j=N-;j>=;j--) {
count = map[j][i]==?++count:;
dp[j][i] = min(count, dp[i][j]);
}
}
int ans = ;
for(int i=;i<N;i++) {
for(int j=;j<N;j++) {
ans = max(ans, dp[i][j]);
}
}
}
};
思路三:二分
这个我也没有试,和暴力有点像,连续的1最大是N个,那么就找N/2长度的试,如果找到了就更长的,反正这样我猜复杂度应该是n2logn ?
有兴趣的试试吧
764. Largest Plus Sign的更多相关文章
- 【LeetCode】764. Largest Plus Sign 解题报告(Python)
[LeetCode]764. Largest Plus Sign 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn ...
- 764. Largest Plus Sign最大的dfs十字架
[抄题]: 求挖掉一些区域后,能允许出现的最大十字架 In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except t ...
- leetcode 764.Largest Plus Sign
根据题意的话就是在非0的地方开始寻找上下左右分别能够走到的最大步长的. 那么使用暴力的方法竟然leetcode还是给过了. class Solution { public: int orderOfLa ...
- [LeetCode] Largest Plus Sign 最大的加型符号
In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the given lis ...
- [Swift]LeetCode764. 最大加号标志 | Largest Plus Sign
In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the given lis ...
- 【leetcode】Largest Plus Sign
题目如下: In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the giv ...
- leetcode764 Largest Plus Sign
思路: 首先使用dp计算出在每个位置(i, j)上下左右最多有多少个连续的1,得到up[i][j], down[i][j], left[i][j], right[i][j].然后计算这四个值中的最小值 ...
- LeetCode All in One题解汇总(持续更新中...)
突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...
- All LeetCode Questions List 题目汇总
All LeetCode Questions List(Part of Answers, still updating) 题目汇总及部分答案(持续更新中) Leetcode problems clas ...
随机推荐
- 使用log4j记录日志
目录 log4j的优点 导入log4j的jar包 log4j的错误级别 log4j日志的输出目的地 log4j的配置示例 log4j的全局配置讲解 控制台日志的配置讲解 日志输出文件的配置讲解 使用l ...
- Azure系列2.1.11 —— CloudBlobContainer
(小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...
- mybatis出现NoSuchMethodException异常
今天在idea中调试项目(ssm搭建的项目)的时候,mybatis突然出现了NoSuchMethodException异常,具体的异常时: java.lang.NoSuchMethodExceptio ...
- Oracle数值函数
--数值函数 --四舍五入 ) from dual ) from dual --数字截取 ) from dual --取模 ,) from dual
- .Net的EF+MVC框架使用T4生成各个层的代码的,在新增表的时候,调不到新增的实体
如果确认有这个实体的话,只需要把T4模板全部重新生成就可以了
- Python基础知识2-内置数据结构(下)
bytes.bytearray #思考下面例子: a = 1 b = a print(a == b)#True print(a is b)#True print(id(a) is id(b))#Fal ...
- python之路--JavaScript
一. JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,希望这门语言能成为国际化标准,于是决定将Jav ...
- DAY09、函数
一.函数的定义:跟变量名的定义大同小异 1.声明函数的关键词:def 2.函数(变量)名:使用函数的依据 3.参数列表:() 参数个数可以为0到n个,但()一定不能丢,完成功能的必要条件 4.函数 ...
- E: Unable to correct problems, you have held broken packages
问题: apt install libmysqlclient-dev Reading package lists... DoneBuilding dependency tree Readi ...
- tomcat 与 nginx,apache的区别
tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...