当前位置 : 主页 > 编程语言 > java >

【LeeCode】338. 比特位计数

来源:互联网 收集:自由互联 发布时间:2022-12-23
【题目描述】 给你一个整数 ​​n​​ ,对于 ​​0 = i = n​​ 中的每个 ​​i​​ ,计算其二进制表示中 ​ ​1​ ​ ​​的个数,返回一个长度为​ ​ ​n + 1​ ​ ​的数组​ ​

【题目描述】

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

​​https://leetcode.cn/problems/counting-bits/?favorite=2cktkvj​​

【示例】

【LeeCode】338. 比特位计数_i++

【代码】admin

Integer.toBinaryString(i); // 十进制转二进制Integer.bitCount(i) // 统计二进制中1的数量import java.math.BigInteger;import java.util.*;import java.util.regex.Pattern;// 2022-12-17class Solution { public int[] countBits(int n) { if ( n < 0) return null; int[] res = new int[n+1]; for (int i = 0; i <= n; i++){ int count = Integer.bitCount(i); res[i] = count; } return res; }}public class Main{ public static void main(String[] args) { int n = 5; new Solution().countBits(n); }}

【代码】Offical

public int[] countBits(int n) { if ( n < 0) return null; int[] res = new int[n+1]; for (int i = 0; i <= n; i++){ res[i] = countOnes(i); } return res;}private int countOnes(int x) { int one = 0; while (x > 0) { x &= (x - 1); // 相同为1 one++; } return one;}

上一篇:【LeeCode】279. 完全平方数
下一篇:没有了
网友评论