java leetcode之[动态规划 简单]191. 位1的个数
2021/11/28 14:09:47
本文主要是介绍java leetcode之[动态规划 简单]191. 位1的个数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目的链接在这里:https://leetcode-cn.com/problems/number-of-1-bits/
目录
- 题目大意
- 一、示意图
- 二、解题思路
- 暴力手段
- 位运算
题目大意
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量)。一、示意图
二、解题思路
暴力手段和位运算
暴力手段
代码如下:
public class Solution { public int hammingWeight(int n) { //找到一个数中数字为1的个数 //13就是 0000 1101 取反就是 1111 0010 //暴力手段 String s = Integer.toBinaryString(n); int count=0; for(int i=0;i<s.length();i++){ if(s.charAt(i)=='1'){ count++; } } return count; } }
位运算
代码如下:
public class Solution { public int hammingWeight(int n) { //找到一个数中数字为1的个数 //13就是 0000 1101 取反就是 1111 0010 //这里说的是 n-1 也就是 12 也就是 0000 1100 有一个方式是n和1进行& 这样就可以进行判断这个位置是不是1了 //然后n在右移 int count=0; //因为还有负数的影响 最多移动32次 int i=0; while (n!=0&&i<32){ count+=(n&1); n>>=1; i++; } return count; } }
这篇关于java leetcode之[动态规划 简单]191. 位1的个数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求