LeetCode338. 比特位计数
发布日期:2021-05-14 23:50:54 浏览次数:17 分类:精选文章

本文共 2558 字,大约阅读时间需要 8 分钟。

���������������������������������������������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

������������������

  • ������������������������������������������������������������������������������������1������������������������������������������������������������������������������������1���������������������������

��������������� | ��������������� | ������������������ | |-------------|--------------| | 0 | 0 | | 1 | 1 | | 10 | 2 | | 11 | 3 |

������������������������������������������

  • ������������������������������1������������������2���������������������������������������������������������0���������2������������������������������������������������������������������1������������

������������������ | ��������������� | ������������������ | |-------------|--------------| | 10 | 2 | | 100 | 4 | | 1000 | 8 | | 11 | 3 | | 110 | 6 | | 1100 | 12 |

���������������������������0���������������������0������������������������������������������������������������������������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

���������������

  • ���������������������������������������������������
  • ���1���������������������������������������������
  • ���������������i���
    • ������i���������������������������������������1���
    • ������i���������������������������������i/2���������������
  • ������������������������������������������������������
  • ���������������������

    class Solution {
    public:
    vector
    countBits(int num) {
    vector
    res;
    res.push_back(0); // ������������0������������0
    for(int i = 1; i <= num; i++) {
    if(i & 1) { // ������������������������������������������1
    res.push_back(res[i-1] + 1);
    } else { // ������������������������������������������������i/2������������������
    res.push_back(res[i/2]);
    }
    }
    return res;
    }
    }

    ������������������������������O(n)���������������������O(n)���������n���������������������������������������������������������������������������������������������������������������������������������

    上一篇:LeetCode 45/55. 跳跃游戏I/II
    下一篇:LeetCode191.位1的个数

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月10日 10时33分37秒