题目大意:

    就是一个由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. 什么是车辆识别代码(VIN)

    车辆识别代码(VIN),VIN是英文Vehicle Identification Number(车辆识别码)的缩写.因为ASE标准规定:VIN码由17位字符组成,所以俗称十七位码.正确解读VIN码,对 ...

  2. C#复习笔记(3)--C#2:解决C#1的问题(可空值类型)

    可空值类型 C#2推出可空类型来表示可以为null的值类型.这是一个呼声很高的需求,因为在常用的数据库中都是允许某些值类型可为空的.那么为什么值类型就不能为空呢?内存中用一个全0的值来表示null,但 ...

  3. java的数据类型:基本数据类型和引用数据类型

    Java数据类型的基本概念 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式. 开始接触每种语言的时候,都会存在对数据类型的认识,有复杂的,有复杂的,各 ...

  4. Linux中各个目录作用

    对于linux新手来说,最感到迷惑的问题之一就是文件都存在哪里呢?特别是对于那些从windows转过来的新手来说,linux的目录结构看起来有些奇怪哦.比如没有C盘,没有分盘符,一大堆不知道用途的文件 ...

  5. [转帖] SS, SP, BP 三个寄存器

    SS, SP, BP 三个寄存器 https://blog.csdn.net/vspiders/article/details/55669265 这么看 计算机组成原理 还有 考试的很多题目非常有用啊 ...

  6. Django的分页和中间件

    一.分页 Django的分页器(paginator) view.py from django.shortcuts import render,HttpResponse # Create your vi ...

  7. CodeForces 126B Password

    题目链接:http://codeforces.com/problemset/problem/126/B 题目大意: 多组数据每组给定1个字符串S,问是否存在S的一个尽量长的子串,同时是S的前缀和后缀, ...

  8. Codeforces 1154E Two Teams

    题目链接:http://codeforces.com/problemset/problem/1154/E 题目大意: 有n个队员,编号1~n,每个人的能力各自对应1~n中的一个数,每个人的能力都不相同 ...

  9. python3 输出系统信息

    一.安装psutil库 pip3 install psutil 二.代码 #!/usr/bin/python3 coding=utf-8 import psutil import uuid impor ...

  10. SpringBoot 标签之启动

    在SpringBoot中入口我们使用: package com.sankuai.qcs.regulation.traffic; import org.springframework.boot.Spri ...