news 2026/5/12 17:05:29

【 每天学习一点算法 2026/01/19】位1的个数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【 每天学习一点算法 2026/01/19】位1的个数

每天学习一点算法 2026/01/19

题目:位1的个数

给定一个正整数n,编写一个函数,获取一个正整数的二进制形式并返回其二进制表达式中 设置位 的个数(也被称为汉明重量)。

  1. 最容易想到的方法就是,遍历二进制字符串,统计 1 的个数(找 1 怎么感觉怪怪的)

    functionhammingWeight(n:number):number{conststr=n.toString(2)letcount=0for(letiofstr){if(i==='1')count++}returncount};
  2. 我们还有一种取巧的方法,js 字符串的 split 方法,可以分割字符串,如果们使用 1 分割字符串,那么结果数组长度减一就是 1 的个数

    function hammingWeight(n: number): number { const str = n.toString(2) return str.split('1').length - 1 };
  3. 我们知道二进制是满二进一,那么二进制运算n - 1就是讲最右侧的 1 变成 0,让后讲这个 1 右侧的 0 变成 1,然后我们对nn - 1进行&运算

    按位与(&)的规则是:只有对应位都为 1 时,结果才为 1,否则为 0

    所以n & (n - 1)的结果就会将最右侧的 1 变成 0,我们循环执行n = n & (n - 1)直到 n 变成 0,循环次数就是 1 的个数

    functionhammingWeight(n:number):number{letcount=0while(n){n&=(n-1)count++}returncount};

题目来源:力扣(LeetCode)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 10:11:20

文献查阅的网站推荐与使用指南

做科研的第一道坎,往往不是做实验,也不是写论文,而是——找文献。 很多新手科研小白会陷入一个怪圈:在知网、Google Scholar 上不断换关键词,结果要么信息过载,要么完全抓不到重点。今天分享几个长期使用的…

作者头像 李华
网站建设 2026/5/9 7:50:31

视频字幕添加神器来袭!88box在线工具让创作更高效

视频字幕添加神器来袭!88box在线工具让创作更高效 在短视频创作、教程录制、影视剪辑等场景中,字幕是提升视频质感与传播力的关键元素。清晰的字幕能帮助观众快速捕捉核心信息,打破语言壁垒,还能让视频在静音播放时依然具备完整的…

作者头像 李华
网站建设 2026/5/9 12:01:57

2026年想做跨境独立站,该怎么开始?给你参考思路

想做独立站却不知道从哪下手?真不用慌!这篇攻略把独立站的每一步都拆得明明白白,哪怕是纯新手,跟着操作也能顺顺当当搞定,保证你看完就能落地~1. 市场调研与产品选择首先是做了市场调研与产品选择&#xff…

作者头像 李华
网站建设 2026/5/9 16:21:28

【建议收藏】智能体(AGENT)与工作流(WORKFLOW):大模型应用落地的核心逻辑

本文系统介绍了智能体(AGENT)与工作流(WORKFLOW)的区别与融合,阐述了构建高效Agentic系统的核心逻辑。详细分析了七种工作流类型及其适用场景,包括增强型LLM、提示词链接、路由、并行、编排工作者、评估者-优化者和自主智能体工作流,并对N8N、…

作者头像 李华
网站建设 2026/5/9 21:51:55

自助KTV行业生态领航者

谢毅,中国自助KTV行业开创者与生态构建者,从2020年深耕自助业态起步,至2025年完成全产业链AI赋能生态布局,以五年精准战略推进,实现自助KTV行业从0到1的开创、从1到N的升级,成为推动行业数字化、智能化变革…

作者头像 李华
网站建设 2026/5/10 10:45:38

如何轻松地将照片从电脑传输到安卓手机

一些安卓用户正在寻找有效可靠的方法,将照片从电脑传输到安卓设备。如果您也想将有趣或难忘的照片导入安卓手机或平板电脑,可以参考这篇文章,它提供了 6 种可靠的方法,让您轻松传输照片。第 1 部分:如何通过 Android 管…

作者头像 李华