338. Counting Bits(比特位计数)

2024-02-01 10:04
文章标签 计数 counting 比特 bits 338

本文主要是介绍338. Counting Bits(比特位计数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

给你一个整数 n ,对于 0 <= i <= n 中的每个 i ,计算其二进制表示中 1 的个数 ,返回一个长度为 n + 1 的数组 ans 作为答案。

问题分析

因为每一个数在计算机内存部的存储方式都是二进制的存储方式,所以我们只需要每一次将数字使用右移操作符进行移一位,然后查看这一位是否为1即可,是1就统计上,这种方法查看一个数字的每一位需要 l o g 2 n log_2n log2n的时间复杂度,共有n+1个数字,所以时间复杂度为 O ( n ) = n l o g 2 n O(n)=nlog_2n O(n)=nlog2n.
这是我能想到的最好的方法了。如果后面我能想到更好的方法我会更新出来的。

代码

int* countBits(int n, int* returnSize) {int *ans = (int *)malloc(sizeof(int)*(n+1));for(int i=0; i<=n; i++){int num = i;int count = 0;while(num!=0){if(num%2==1){count += 1;}num = num>>1;}ans[i] = count;}*returnSize = n+1;return ans;
}

提交结果截图

请添加图片描述

这篇关于338. Counting Bits(比特位计数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666921

相关文章

LeetCode--204 计数质数

题目 统计所有小于非负整数 n 的质数的数量。 示例 示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 class Solution {public:int countPrimes(int n) {if (n <= 2) return 0;int cnt = 0;vector<bool> isPrime(n, true);

力扣SQL50 求关注者的数量 分组计数

Problem: 1729. 求关注者的数量 Code select user_id, count(1) followers_countfrom Followers group by user_idorder by user_id;

力扣SQL50 销售分析III having + 条件计数

Problem: 1084. 销售分析III 👨‍🏫 参考题解 Code select s.product_id,p.product_namefrom sales s left join product pon s.product_id = p.product_idgroup by product_idhaving count(if(sale_date between

一个整数使用英文表达的字母计数

题目: 把1到5写成英文单词分别是:one、two、three、four、five。这些单词一共用了3+3+5+4+4 = 19 个字母。 如果把1到1000都写成英文单词,一共要用多少个字母? 注:不计入空格和连字符,例如,342,three hundred and forty-two, 包含23哥字母,而115(one hundred and fifteen)包含20个字母。单词“and

计数排序(第8章线性时间排序)

根据《算法导论》第八章算法实现下面函数,详见《算法导论》第八章计数排序,程序可运行: #include <STDLIB.H>#include <STDIO.H>#include <MALLOC.H>#include <STRING.H>/********************************************************* 函数名: void COUNTI

算法导论 第二版 8.2 计数排序

根据伪码编写: #include <iostream>#include <ctime>using namespace std;void counting_sort(int *A, int *B, int *C, int k, int n)//B是排序输出,C用来计数{for(int i = 0; i <= k; i++)//初始化CC[i] = 0;for(int j = 0; j <=

338. Counting Bits 比特位计数

https://leetcode-cn.com/problems/counting-bits/description/ Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1’s in their binary represent

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 反射计数(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 https://app5938.acapp.acwing.com.cn/contest/2/problem/OD1068 🌍 评测功能需要 ⇒ 订阅专栏 ⇐

数位统计DP——AcWing 338. 计数问题

数位统计DP 定义 数位DP(Digital DP)是一种用于解决与数字的数位相关问题的动态规划算法。它将数字的每一位看作一个状态,通过转移状态来计算满足特定条件的数字个数或其他相关统计信息。 运用情况 统计满足特定条件的数字个数,例如在给定范围内有多少个数字满足某些数位特征。计算数字的某个数位上的特定统计信息,如出现的数字频率等。解决与数字排列、组合相关的问题。 注意事项 数位DP的

实战篇:GY-906红外测温模块 + 万年历(定时器计数中断版本) -STM32篇

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发        向上代码兼容GD32F450ZGT6中使用        后续项目主要在下面该专栏中发布: https://blog.csdn.net/qq_62316532/category_12608431.html?spm=1001.2014.3001.5482        感兴趣的点个关注收藏一下吧!        电