LeetCode(338)--比特位计数
发布日期:2021-05-10 07:48:50 浏览次数:18 分类:精选文章

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

��������������������������������������� num��������� 0 ��� num ������������������������������������ 1 ������������������������������������������������

  • ��������������������������������������� num+1 ��������� result��������������������������� i ��������������� 1 ������������

  • ���������������

    • result[0] = 0��������� 0 ��������������������������� 1���
    • ������ num >= 1���result[1] = 1��������� 1 ��������������������������� 1 ��� 1���
  • ���������������������

    • ��� i=2 ��� num��������������������������� i���
      • ������ i ������������result[i] = result[i/2]������������������������������ 0������
      • ������ i ������������result[i] = result[i/2] + 1������������������������������ 1������
  • ��������������������������������� O(n)������������������������������������������������������������ O(n)������������������������������������������������������


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

    class Solution {
    public int[] countBits(int num) {
    int[] result = new int[num + 1];
    if (num == 0) {
    result[0] = 0;
    return result;
    }
    result[0] = 0;
    result[1] = 1;
    for (int i = 2; i <= num; i++) {
    if (i % 2 == 0) {
    result[i] = result[i / 2];
    } else {
    result[i] = result[i / 2] + 1;
    }
    }
    return result;
    }
    }

    ���������

    • ������������������O(n)��������������������������������������������������� 2 ��� num���
    • ������������������O(n)������������������������������
    • ������������������������������������������������������������������������������������������������������������������������������������
    • ������������������������������������������������������������������������������������������������������������

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

    上一篇:LeetCode(1678) -- 设计Goal解析器
    下一篇:山东大学软件学院大二下数据结构课程设计---排序算法的性能分析

    发表评论

    最新留言

    留言是一种美德,欢迎回访!
    [***.207.175.100]2025年04月10日 03时00分58秒