题目大意:

    就是一个由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的更多相关文章

  1. 【LeetCode】764. Largest Plus Sign 解题报告(Python)

    [LeetCode]764. Largest Plus Sign 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn ...

  2. 764. Largest Plus Sign最大的dfs十字架

    [抄题]: 求挖掉一些区域后,能允许出现的最大十字架 In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except t ...

  3. leetcode 764.Largest Plus Sign

    根据题意的话就是在非0的地方开始寻找上下左右分别能够走到的最大步长的. 那么使用暴力的方法竟然leetcode还是给过了. class Solution { public: int orderOfLa ...

  4. [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 ...

  5. [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 ...

  6. 【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 ...

  7. leetcode764 Largest Plus Sign

    思路: 首先使用dp计算出在每个位置(i, j)上下左右最多有多少个连续的1,得到up[i][j], down[i][j], left[i][j], right[i][j].然后计算这四个值中的最小值 ...

  8. LeetCode All in One题解汇总(持续更新中...)

    突然很想刷刷题,LeetCode是一个不错的选择,忽略了输入输出,更好的突出了算法,省去了不少时间. dalao们发现了任何错误,或是代码无法通过,或是有更好的解法,或是有任何疑问和建议的话,可以在对 ...

  9. All LeetCode Questions List 题目汇总

    All LeetCode Questions List(Part of Answers, still updating) 题目汇总及部分答案(持续更新中) Leetcode problems clas ...

随机推荐

  1. 使用log4j记录日志

    目录 log4j的优点 导入log4j的jar包 log4j的错误级别 log4j日志的输出目的地 log4j的配置示例 log4j的全局配置讲解 控制台日志的配置讲解 日志输出文件的配置讲解 使用l ...

  2. Azure系列2.1.11 —— CloudBlobContainer

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...

  3. mybatis出现NoSuchMethodException异常

    今天在idea中调试项目(ssm搭建的项目)的时候,mybatis突然出现了NoSuchMethodException异常,具体的异常时: java.lang.NoSuchMethodExceptio ...

  4. Oracle数值函数

    --数值函数 --四舍五入 ) from dual ) from dual --数字截取 ) from dual --取模 ,) from dual

  5. .Net的EF+MVC框架使用T4生成各个层的代码的,在新增表的时候,调不到新增的实体

    如果确认有这个实体的话,只需要把T4模板全部重新生成就可以了

  6. Python基础知识2-内置数据结构(下)

    bytes.bytearray #思考下面例子: a = 1 b = a print(a == b)#True print(a is b)#True print(id(a) is id(b))#Fal ...

  7. python之路--JavaScript

    一. JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,希望这门语言能成为国际化标准,于是决定将Jav ...

  8. DAY09、函数

    一.函数的定义:跟变量名的定义大同小异 1.声明函数的关键词:def 2.函数(变量)名:使用函数的依据 3.参数列表:()   参数个数可以为0到n个,但()一定不能丢,完成功能的必要条件 4.函数 ...

  9. E: Unable to correct problems, you have held broken packages

    问题: apt install libmysqlclient-dev Reading package lists... DoneBuilding dependency tree       Readi ...

  10. tomcat 与 nginx,apache的区别

    tomcat 与 nginx,apache的有什么区别 回答一: 题主说的Apache,指的应该是Apache软件基金会下的一个项目——Apache HTTP Server Project:Nginx ...