1. class Solution:
  2. def getMax(self,B:'List[int]'):
  3. n = len(B)
  4. maxlen = 0
  5. curlen = 0
  6. for i in range (n):
  7. if B[i] == 1:
  8. curlen += 1
  9. else:
  10. maxlen = max(maxlen,curlen)
  11. curlen = 0
  12. return max(maxlen,curlen)
  13. def longestOnes(self, A: 'List[int]', K: int) -> int:
  14. if K == 0:
  15. return self.getMax(A)
  16. n = len(A)
  17. zlist = list()
  18. for i in range(n):
  19. if A[i] == 0:
  20. zlist.append(i)
  21. if len(zlist)<=K:
  22. return n
  23. maxlen = 0
  24. for zi in range(len(zlist)-K+1):
  25. ti = zi+K
  26.  
  27. left = 0
  28. right = len(A)-1
  29. if zi==0:
  30. left = zlist[zi]
  31. else:
  32. left = zlist[zi-1]+1
  33. if zi == len(zlist)-K:
  34. right = len(A) - 1
  35. else:
  36. right = zlist[ti] - 1
  37.  
  38. maxlen = max(maxlen, right - left +1)
  39.  
  40. return maxlen

经过了几次尝试,终于作出来了。主要的思路是滑动窗口:

先记录所有的0的索引,然后选择等K宽的窗口,计算窗口“所连接”的连续1的起止坐标。然后滑动窗口,进行比较,保留最大值。

leetcode1004的更多相关文章

  1. [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 ...

随机推荐

  1. Android keystore相关

    一.生成keystorekeytool -genkey -alias test.keystore -keyalg RSA -validity -keystore test.keystore 二.查看 ...

  2. 一篇对OAuth2.0开发实例的介绍

    今天看到了博友对SSO的文章,SSO单点登录的讲解突然想写一篇关于OAuth2.0用户授权的介绍. 应用场景:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微 ...

  3. 阿里云安装kubernetes-UI报错endpoints \"kubernetes-dashboard\" not found解决方法

    问题:阿里云ECS安装kube-ui v5后,访问 http://master_ip:8080/ui/跳转到http://master_ip:8080/api/v1/proxy/namespaces/ ...

  4. react事件中的this指向

    在react中绑定事件处理函数的this指向一共有三种方法,本次主要总结这三种方式. 项目创建 关于项目的创建方法,在之前的文章中有记录,这里不再赘述,项目创建成功后,按照之前的目录结构对生成的项目进 ...

  5. maven之BOM及BOM和provided的一个小坑

    BOM(Bill of Materials)定义一整套相互兼容的jar包版本集合,使用时只需要依赖该BOM文件,即可放心的使用需要的依赖jar包,且无需再指定版本号.BOM的维护方负责版本升级,并保证 ...

  6. setjmp的跳转

    ** 问 :goto语句只能在函数内使用,那如果想要在函数内部直接跳到函数外怎么办呢?** ** 答:setjmp跳转 介绍: 举例: #include<stdio.h> #include ...

  7. [UE4]射击起点、终点的计算方法

    一.射击起点,这个简单,一般是以角色的相机位置为作为射击起点,而不是枪口的位置作为起点 二.射击终点,角色朝向 * 射击距离 + 射击起点 角色朝向:单位向量 角色朝向 * 射击距离:向量长度 向量长 ...

  8. [UE4]不推荐的UI更新方式

    在创建UI的时候,把UI保存到一个变量,直接访问其中的控件. 这种方法会增加耦合,不推荐,应当尽量避免使用这种方式.

  9. Maven项目下update maven后Eclipse报错

    Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL     严重: Error config ...

  10. 前端UI框架之layUI学习

    用layUI框架来进行我们的页面速写,还是非常不错的,虽然2016年诞生,在我使用的过程中,觉得比bootstrap更轻盈点,总结下用的最多的组件. form表单下拉框: <!DOCTYPE h ...