Minimum Number of K Consecutive Bit Flips LeetCode solution in Python

1
# Runtime: 2365 ms (Top 19.91%) | Memory: 17.1 MB (Top 67.10%)
2
class Solution:
3
def minKBitFlips(self, nums: List[int], k: int) -> int:
4
flips = [0] * len(nums)
5
csum = 0
6

7
for left in range(0, len(nums) - k + 1):
8
if (nums[left] + csum) % 2 == 0:
9
flips[left] += 1
10
csum += 1
11
if left >= k - 1:
12
csum -= flips[left - k + 1]
13

14
for check in range(len(nums) - k + 1, len(nums)):
15
if (nums[check] + csum) % 2 == 0:
16
return -1
17
if check >= k - 1:
18
csum -= flips[check - k + 1]
19

20
return sum(flips)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0