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 ...
随机推荐
- 【剑指offer】逆序输出链表
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. *考察栈的使用 *使用循环输出Stack中内容的时候,不能使用for(int i; i<stack.size();i++)因为s ...
- Osip2和eXosip协议栈的简析
Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高. eXosip是Osip2的一个扩展协议集,它部分封装 ...
- JavaScript中的类(class)、构造函数(constructor)、原型(prototype)
类 Class 类的概念应该是面向对象语言的一个特色,但是JavaScript并不像Java,C++等高级语言那样拥有正式的类,而是多数通过构造器以及原型方式来仿造实现.在讨论构造器和原型方法前,我可 ...
- [UE4]虚幻4的网络适合开发什么游戏
使用虚幻4开发网络游戏的两种方式 一.虚幻4只做客户端,服务器端独立开发,适用于任何网络游戏 二.使用虚幻4同时开发客户端和服务器(使用虚幻4内置的服务器),适用于一部分网络游戏. 如果使用虚幻4作为 ...
- js时间加减
1.选择上一周方法(不算当天) $("#weekSel").click(function () { //当前时间 var now = new Date(); //当前时间往前推一周 ...
- 第31课 老生常谈的两个宏(linux)
1. Linux内核中常用的两个宏定义 (1)offsetof宏:用于计算TYPE结构体中MEMBER成员的偏移位置 #ifndef offsetof #define offsetof(TYPE, M ...
- Java动手及实验整理
1 枚举类型 在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例.枚举类型是引用类型!枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象.相同的值则引用同一个对象 ...
- DIV左、中、右三列布局的各类情况说明
一.中间定宽.左.右侧百分比自适应: 1.HTML代码: <div id="left"> <div id="innerLeft"> &l ...
- python随机数random
1.random.random()方法用于生成一个0到1的随机浮点数:0<=n<1.0 2.random.uniform(a,b):用于生成一个指定范围内的随机浮点数,两格参数中,其中一个 ...
- ORACLE和MYSQL的简单区别
1,Oracle没有offet,limit,在mysql中我们用它们来控制显示的行数,最多的是分页了.oracle要分页的话,要换成rownum. 2,oracle建表时,没有auto_increme ...