leetcode1004
class Solution:
def getMax(self,B:'List[int]'):
n = len(B)
maxlen = 0
curlen = 0
for i in range (n):
if B[i] == 1:
curlen += 1
else:
maxlen = max(maxlen,curlen)
curlen = 0
return max(maxlen,curlen)
def longestOnes(self, A: 'List[int]', K: int) -> int:
if K == 0:
return self.getMax(A)
n = len(A)
zlist = list()
for i in range(n):
if A[i] == 0:
zlist.append(i)
if len(zlist)<=K:
return n
maxlen = 0
for zi in range(len(zlist)-K+1):
ti = zi+K left = 0
right = len(A)-1
if zi==0:
left = zlist[zi]
else:
left = zlist[zi-1]+1
if zi == len(zlist)-K:
right = len(A) - 1
else:
right = zlist[ti] - 1 maxlen = max(maxlen, right - left +1) return maxlen
经过了几次尝试,终于作出来了。主要的思路是滑动窗口:
先记录所有的0的索引,然后选择等K宽的窗口,计算窗口“所连接”的连续1的起止坐标。然后滑动窗口,进行比较,保留最大值。
leetcode1004的更多相关文章
- [Swift]LeetCode1004. 最大连续1的个数 III | Max Consecutive Ones III
Given an array A of 0s and 1s, we may change up to K values from 0 to 1. Return the length of the lo ...
随机推荐
- 使用googletest进行C++单元测试(Netbeans为例)
googletest设置步骤(Netbeans为例) 下载googletest [https://github.com/google/googletest],解压到<gtest_dir> ...
- Inno Setup 脚本
给你个我用的例子: Delphi/Pascal code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 ...
- PAT 乙级 1069 微博转发抽奖(20) C++版
1069. 微博转发抽奖(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 小明PAT考了满分,高兴之余决定 ...
- HDOJ 2006 求奇数的乘积
#include<iostream> #include<vector> using namespace std; int main() { int n; while (cin ...
- Laravel 5.5 FormRequest 自定义错误消息 postman调试时X-Requested-With设为XMLHttpRequest
Laravel 5.5 FormRequest 自定义错误消息 使用FormRequest进行表单验证,就不用让验证逻辑和控制器里面的逻辑都混在一起.但在使用的时候呢,发现json错误返回的数据,与我 ...
- 好文推荐:转载一篇别人kaggle的经验分享
转载:https://www.toutiao.com/i6435866304363627010/ 笔者参加了由Quora举办的Quora Question Pairs比赛,并且获得了前1%的成绩.这是 ...
- kafka的安装 (单机)
https://blog.csdn.net/q282176713/article/details/81112988
- 集群中使用chronyc同步时间
在集群之中,有些服务器之间的时间需要同步,但并不是所有机器可以直接连外网,这时可以用Chrony工具解决. 解决方法是将其中一台设为时间服务器,然后其它服务器和这台时间服务器同步即可.具体步骤如下: ...
- 删除n天前的所有目录和文件
删除目录 find /your_dir/ -maxdepth -type d -mtime + -exec rm -rf {} \; 删除文件 find /目录/ -mtime + -name &qu ...
- C# .NET Web Api 保存Session
Global.asax中添加: public override void Init() { this.PostAuthenticateRequest += (sender, e) => Http ...