LeetCode:贪婪算法

LeetCode:贪婪算法

贪婪算法基础

717. 1-bit and 2-bit Characters

class Solution {
    public boolean isOneBitCharacter(int[] bits) {
        /**
         * 思路:
         *  利用一个指针来从左向右扫描数组,我们就是要看最后两位构不构成2B,如果扫描到倒数第二是1,说明,前面所有位都已经被解析,所以1必定和0,构成2B
         *  但是如果将要扫描的已经略过倒数第二位指到了倒数第一位,那么肯定最后一位只能是1B
         */
        int point = 0;
        while(point<bits.length-1)
        {
            point = point +bits[point]+1; //注意,这里巧妙的将2B进行了移动
        }
        //到这里point指的位置,如果不为长度-1,那么必为长度+1
        return point==bits.length-1;
    }
}

  

posted @ 2018-02-08 18:48  子烁爱学习  阅读(287)  评论(0编辑  收藏  举报