1~n 中每个数字的二进制位中 1 的个数

一.代码

    public List<Integer> hammingWeight(int n) {
        List<Integer> list = new ArrayList<>();
        int[] a = new int[32];
        int count = 0;
        for (int i = 1; i <= n; i++) {
            int j = 0;
            while (true) {
                if (a[j] == 0) {
                    a[j] = 1;
                    count++;
                    break;
                }
                if (a[j] == 1) {
                    a[j] = 0;
                    count--;
                }
                j++;
            }
            list.add(count);
        }
        return list;
    }


版权声明:本文为pubgNO1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。