// 双指针,k个1的滑动窗口中的0的最小个数就是答案---感觉不应该是hard吧.2分钟想出来了 /* 写完WA了...21 / 116 个通过的测试用例 解答错误 输入 nums = [1,0,0,1,0,1,1,1,0,1,1] k = 7 发现自己想得太简单了,这个案例确实没想到... */ funcminMoves(nums []int, k int)int { sz := len(nums) one_cnt := 0 ans := sz one2nums_id := make(map[int]int) for l, r := 0, 0; r < sz; r++ { if nums[r] == 1 { // one_cnt从0开始,one2nums_id[0]代表第一个1的位置 one2nums_id[one_cnt] = r one_cnt++ if one_cnt < k { if r == sz-1 { panic("can't find k 1's") } continue } l = one2nums_id[one_cnt-k] if ans > r-(l-1)-k { ans = r - (l - 1) - k } } } return ans }