作者stdlib (我是新手)
看板Prob_Solve
标题[问题] 最长的连续假期
时间Mon Nov 19 04:44:04 2018
Q: 给定一个 bool array,0代表放假日,1代表要上班
以及给一个年假天数 v,试求出请了 v 天假後,最长的连续假期天数为何
Example:
Input: {1, 0, 0, 1, 1, 0, 0, 1, 1} ; v=2
Output: 6,请了 2 天假之後 (把 1 标成 0),
阵列会变成 {1, 0, 0, 0, 0, 0, 0, 1, 1},有 6 个连续的 0。
Input: {0, 1, 1, 0, 1, 0, 1, 1, 1, 0} ; v=3
Output: 6,把前 3 个 1 标成 0,
阵列会变成 {0, 0, 0, 0, 0, 0, 1, 1, 1, 0},有 6 个连续的 0。
感谢各位大神
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 79.66.218.42
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1542573847.A.D87.html
1F:推 s89162504: 相当於求 连续和为v的最长阵列 对吧!? 11/19 17:03
2F:→ s89162504: 简单用个two pointer就行了吧 11/19 17:03
3F:→ s89162504: 如果目前连续和比v小就head往前走 11/19 17:05
4F:→ s89162504: 如果连续和超过v就tail往前y 11/19 17:05
5F:推 cutekid: 推楼上 s 大,超过 v 时,tail往前直到遇到 1 为止 11/19 19:21
6F:推 HanaYukii: 每个起点二分搜 12/03 14:39