717. 1-bit and 2-bit Characters
Description
We have two special characters:
- The first character can be represented by one bit
0. - The second character can be represented by two bits (
10or11).
Given a binary array bits that ends with 0, return true if the last character must be a one-bit character.
Example 1:
Input: bits = [1,0,0] Output: true Explanation: The only way to decode it is two-bit character and one-bit character. So the last character is one-bit character.
Example 2:
Input: bits = [1,1,1,0] Output: false Explanation: The only way to decode it is two-bit character and two-bit character. So the last character is not one-bit character.
Constraints:
1 <= bits.length <= 1000bits[i]is either0or1.
Solutions
Solution: Greedy
- Time complexity: O(n)
- Space complexity: O(1)
JavaScript
js
/**
* @param {number[]} bits
* @return {boolean}
*/
const isOneBitCharacter = function (bits) {
const n = bits.length;
let index = 0;
while (index < n - 1) {
index += bits[index] ? 2 : 1;
}
return bits[index] === 0;
};