LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)

LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)

LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)

前言

题目

语言

思路

后记

前言

从今天开始坚持练习LeetCode上的习题,计划是先做easy,然后逐渐难度和量加大(毕竟代码能力不算出众,一口吃不了胖子),希望自己能够坚持下去,提高编程能力。

题目

LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)_第1张图片

LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)_第2张图片

我的理解是这样的,题目的输入只是二进制数0或1,也就是数组中仅有0和1两种元素,且编码方式只有三种:0,11,10,只是可以用这三种在保证最后一位是0 的前提下,任意的组合。题目要求我们做的就是判断最后一个0元素是属于1比特的0还是属于2比特的10。

语言

Java

LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)_第3张图片

思路

分两种情况考虑:

  1. 当数组长度为1时:此时数组里只有1个元素,而且题有规定最后一个元素必须是0,所以这种情况数组里唯一的值就为0,所以结果是true。

  2. 当数组长度不为1时:首先将数组长度len记下来,循环遍历整个数组,当第一位为0时,len--,如果len==1了,就跳出循环,return len%2!=0;当第一位为1时,那么只可能10或11,所以直接"跳过"这两位了,直接到第三位继续判断,此时len=len-2,如果len==1了,就跳出循环,return len%2!=0。

后记

这是第一次尝试做LeetCode,一开始感觉很别扭,因为全是英文题,感觉理解题目都要好久,但是我还是咬着牙多看两边题目加深理解,坚持禁用翻译,应该习惯了就好了,而且还能提高英语阅读能力。

 

你可能感兴趣的:(LeetCode)