leetcode 338
class Solution { public: vector<int> countBits(int num) { vector<int> returnSize; returnSize.push_back(0); int i =1; while(i<=num) { int tmp=i; for(int j =0;j<tmp&&i<=num;j++) { returnSize.push_back(returnSize[j]+1); i++; } } return returnSize; } };
这道题的思路是:
0 00
1 01
2 10
3 11
发现1是在0的基础上加1,2的低一位是和0的低一位相同,3的低一位是和1的低一位相同。同理扩至三位的时候
4 100
5 101
6 110
7 111
可以看出4-7都是在0-3的基础上最高位增加了‘1’。