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 ...
随机推荐
- 阿里云ECS安装flannel启动问题
在阿里云ECS安装flannel,安装过程可以在网上找文章,这样的文章很多.我这里讲一下启动flannel遇到的两个问题的解决方法. 1,network.go:102] failed to retri ...
- C语言强化——指针
目录 相关概念 数组与函数 栈空间和堆空间的差异 指针常量与常量指针 指针数组与数组指针 二级指针 二级指针的传递 二级指针的偏移(索引式排序) 相关概念 指针的大小,在32系统上是4个字节:在64位 ...
- CRM 2016 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"类型的权限已失败.
CRM 请求"System.Security.Permissions.FilelOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,Pu ...
- 02-Sockent客户端
package com.day1; import java.io.IOException; import java.io.OutputStream; import java.net.Inet4Addr ...
- 第1课 类型推导(1)_auto关键字
1. auto关键字 (1)auto的作用是让编译器自动推断变量的类型,而不需要显式指定类型.这种隐式类型的推导发生在编译期. (2)auto并不能代表实际的类型声明,只是一个类型声明的“占位符” ...
- WebUploader 手机端上传图片(转)
https://blog.csdn.net/loserorleader/article/details/50395040
- HDFS的操作SHELL和API
HDFS的shell操作和JavaAPI的使用: WEB WEB端口50090查看SecondaryNameNode信息.可以查看Hadoop的版本,NameNode的IP,Checkpoint等信息 ...
- Ren'Py视觉小说安装,玩一下吧,上班很闲的话
---------------------------------------------------------------------------------------------------- ...
- Android 支付密码输入框,自定义EditText实现密码输入框功能;
刚撸出来的密码输入框,注释和逻辑看着挺清晰的,一些属性还没有添加,下个博客把属性添加上去: 看一下图: 直接看代码吧! import android.content.Context; import a ...
- C#提取双引号中的字符串
public static void Main(string[] args) { string strtmp = "123\"456\"qqq\"789\&qu ...