Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
GreyZeng
algorithm
提交
83053c5e
A
algorithm
项目概览
GreyZeng
/
algorithm
通知
10
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
83053c5e
编写于
1月 19, 2024
作者:
GreyZeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update code
上级
b1899ea1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
19 deletion
+8
-19
src/main/java/git/snippet/bit/LeetCode_0191_NumberOf1Bits.java
...ain/java/git/snippet/bit/LeetCode_0191_NumberOf1Bits.java
+8
-19
未找到文件。
src/main/java/git/snippet/bit/LeetCode_0191_NumberOf1Bits.java
浏览文件 @
83053c5e
package
git.snippet.bit
;
// TODO
// 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。
// 示例 1:
// 输入:00000000000000000000000000001011
// 输出:3
// 解释:输入的二进制串 00000000000000000000000000001011中,共有三位为 '1'。
// 示例 2:
// 输入:00000000000000000000000010000000
// 输出:1
// 解释:输入的二进制串 00000000000000000000000010000000中,共有一位为 '1'。
// 示例 3:
// 输入:11111111111111111111111111111101
// 输出:31
// 解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。
// 提示:
// 输入必须是长度为 32 的 二进制串 。
// 进阶:
...
...
@@ -22,7 +10,7 @@ package git.snippet.bit;
public
class
LeetCode_0191_NumberOf1Bits
{
// TODO
// 最优解
public
int
hammingWeight
(
int
n
)
{
public
static
int
hammingWeight
(
int
n
)
{
n
=
(
n
&
0x55555555
)
+
((
n
>>>
1
)
&
0x55555555
);
n
=
(
n
&
0x33333333
)
+
((
n
>>>
2
)
&
0x33333333
);
n
=
(
n
&
0x0f0f0f0f
)
+
((
n
>>>
4
)
&
0x0f0f0f0f
);
...
...
@@ -34,15 +22,16 @@ public class LeetCode_0191_NumberOf1Bits {
// 常规解法
// 一个数的二进制有多少个1
// 最右侧的1 (N&-N)
public
int
hammingWeight2
(
int
n
)
{
int
num
=
0
;
public
static
int
hammingWeight2
(
int
n
)
{
int
ans
=
0
;
while
(
n
!=
0
)
{
int
mostRightOne
=
(
n
)
&
((~
n
)
+
1
);
int
mostRightOne
=
n
&
(-
n
);
if
((
mostRightOne
&
n
)
!=
0
)
{
num
++;
ans
++;
}
n
^=
mostRightOne
;
}
return
num
;
return
ans
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录