LeetCode-717:1-bit and 2-bit Characters (1位和2位编码元素)-- easy
2017-11-07 20:30
399 查看
Question
We have two special characters. The first character can be represented by one bit 0. The second character can be represented by two bits (10 or 11).Now given a string represented by several bits. Return whether the last character must be a one-bit character or not. The given string will always end with a zero.
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.
Note:
1 <= len(bits) <= 1000.
bits[i] is always 0 or 1.
问题解析:
给定数组中仅有0和1两种元素,且出现的元素组合只能有三种编码方式:
10、
11、
0,判断给定的数组最后一个元素是否属于
0编码,而不是
10编码。
Answer
Solution 1:
读清楚题目。明白题目意图,就会发现,题目的意思是要判断最后一个
0元素是属于
0还是输入
10;
遍历数组,给定指针,若当前位为
1则指针
+2;若当前位为
0,则指针
+1;
判断最后指针是否与
bits.length-1相等,相等则为真,否则为假;其中length=1的情况也包括进去了。
class Solution { public boolean isOneBitCharacter(int[] bits) { int i = 0; while (i < bits.length-1){ if (bits[i] == 1){ i += 2; }else{ i++; } } return i == bits.length-1; } }
时间复杂度:O(n),空间复杂度:O(1)
相关文章推荐
- 1-bit and 2-bit Characters:判断有1或2位编码构成的编码
- leetcode 717 1-bit and 2-bit Characters
- 1-bit and 2-bit Characters[Leetcode 717]
- leetcode 717. 1-bit and 2-bit Characters 编码判断问题 + 贪心算法 + 遍历即可
- LeetCode之1-bit and 2-bit Characters(Kotlin)
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位
- [LeetCode] 1-bit and 2-bit Characters 一位和两位字符
- leetcode----1位和2位字符问题
- 717. 1-bit and 2-bit Characters 1、2位字符
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的
- 【LeetCode】717. 1-bit and 2-bit Characters(一位数和两位数)
- LeetCode 717. 1-bit and 2-bit Characters
- [Leetcode] 717. 1-bit and 2-bit Characters 解题报告
- 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位的
- LeetCode-717. 1-bit and 2-bit Characters
- 二、 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位
- 【LeetCode】717. 1-bit and 2-bit Characters 解题报告
- 2017.11.2 LeetCode - 70. Climbing Stairs - 100. Same Tree - 717. 1-bit and 2-bit Characters
- (算法分析Week18)1-bit and 2-bit Characters[Easy]
- 717 1-bit and 2-bit Characters