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 ...
随机推荐
- Nexus3.6版私服搭建安装与配置教程
1.本地环境配置(Nexus3.6支持jdk版本1.6.1.7.1.8) 1.1.官网下载地址:https://www.sonatype.com/download-oss-sonatype ...
- AutoCAD的代替软件
AutoCAD的代替软件Autocad2005以上版本都需要.net framework的支持,安装起来太麻烦,而且卡顿.以下几个软件可以代替Autocad,操作和插件基本都能兼容Autocad.1. ...
- 关于linux中的system函数
Linux下使用system()函数一定要谨慎 https://blog.csdn.net/senen_wakk/article/details/51496322 system()正确应用 https ...
- HTML-Ronoob-基础教程:HTML 字符实体
ylbtech-HTML-Ronoob-基础教程:HTML 字符实体 1.返回顶部 1. HTML 中的预留字符必须被替换为字符实体. HTML 实体 在 HTML 中,某些字符是预留的. 在 HTM ...
- 理解 neutron(15):Neutron Linux Bridge + VLAN/VXLAN 虚拟网络
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 学习笔记之人工智能(Artificial Intelligence)
人工智能 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD 人工智能(英语:Artif ...
- OpenStack基础知识
什么是云计算 地址规划 主机名 IP OpenStack01 172.30.2.135 有了云主机可以灵活扩展 OpenStack分为agent 和server端 ...
- python输出缓冲区的问题
碰到的问题,一段代码,print在前,log的在后,查看日志中log的反而在前面.是python输出缓冲区的问题. python输出缓冲区要满 4k 才写入文件,除非禁用缓存或者强制输出或者程序结束. ...
- 第一次有人把小米9快充讲的这么简单明了qc3.0 usb pd
原文: http://www.chongdiantou.com/wp/archives/32093.html 2019年2月20日,小米在北京工业大学体育馆举办了盛况空前的小米9手机发布会,会上雷军揭 ...
- windows服务没有及时响应启动或控制请求
单击开始,单击运行,键入regedit,然后单击“确定”. 找到并单击以下注册表子项:HKEY_LOCAL_MACHINE——SYSTEM——CurrentControlSet——Control 在右 ...