
Problem
Solution
Submissions
K Consecutive Bit Flips
Certification: Advanced Level
Accuracy: 0%
Submissions: 0
Points: 15
Write a C program to find the minimum number of K consecutive bit flips needed to make all bits in a binary array equal to 1. A K-bit flip consists of choosing a subarray of length K and flipping every bit in it (0 becomes 1, 1 becomes 0). If it's impossible to make all bits 1, return -1.
Example 1
- Input: nums = [0,1,0], K = 1
- Output: 2
- Explanation:
- Initial array: [0,1,0].
- Flip bit at index 0: [1,1,0].
- Flip bit at index 2: [1,1,1].
- Total flips needed: 2.
- Initial array: [0,1,0].
Example 2
- Input: nums = [1,1,0], K = 2
- Output: -1
- Explanation:
- Initial array: [1,1,0].
- We can flip indices 0-1: [0,0,0] or indices 1-2: [1,0,1].
- No matter what we do, we cannot make all bits 1.
- Therefore, return -1.
- Initial array: [1,1,0].
Constraints
- 1 ≤ nums.length ≤ 30000
- 1 ≤ K ≤ nums.length
- nums[i] is 0 or 1
- Time Complexity: O(n)
- Space Complexity: O(n)
Editorial
My Submissions
All Solutions
Lang | Status | Date | Code |
---|---|---|---|
You do not have any submissions for this problem. |
User | Lang | Status | Date | Code |
---|---|---|---|---|
No submissions found. |
Solution Hints
- Use a greedy approach: scan from left to right
- When you encounter a 0, you must flip the K-length subarray starting from that position
- Keep track of how many flips affect each position using a difference array
- Use the flip count to determine the current state of each bit
- If you can't perform a flip (not enough elements left), return -1
- Count the total number of flips performed