首页 > 代码库 > leetcode刷题全纪录(持续更新)

leetcode刷题全纪录(持续更新)

338. Counting Bits

原题链接https://leetcode.com/problems/counting-bits/

自己的思路:Integer.bitCount()方法,但是原题并不推荐使用内嵌方法

bug free:遇到偶数时,其1的个数和该偶数除以2得到的数字的1的个数相同,遇到奇数时,其1的个数等于该奇数除以2得到的数字的1的个数再加1

public int[] countBits(int num) {
        int[] result = new int[num+1];
        for (int i=1;i<num+1;i++)
        result[i]=result[i>>1]+(i&1);
         return result;
    }

 413.Arithmetic Slices

题意:求一个数组中可以构成多少个等差数列

思路:参见http://blog.csdn.net/camellhf/article/details/52824234

 

 public int numberOfArithmeticSlices(int[] A) {
        int count = 0;
        int incre = 0;
        for (int i = 2; i<A.length;i++) {
            if(A[i] - A[i-1] == A[i-1]-A[i-2])
            count += ++incre;
            else
            incre=0;
        }
        return count;
    }

 

leetcode刷题全纪录(持续更新)