当前位置: 首页 > news >正文

Leetcode2595:奇偶位数

题目描述:

给你一个  整数 n 。

用 even 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的偶数下标的个数。

用 odd 表示在 n 的二进制形式(下标从 0 开始)中值为 1 的奇数下标的个数。

请注意,在数字的二进制表示中,位下标的顺序 从右到左

返回整数数组 answer ,其中 answer = [even, odd] 。

代码思路:

  1. 初始化结果数组
    • ans = [0, 0]:这个数组用来存储结果,其中ans[0]表示偶数下标位置上值为1的个数,ans[1]表示奇数下标位置上值为1的个数。
  2. 变量初始化
    • i = 0:这个变量用来追踪当前处理的二进制位的下标(从0开始),同时它也决定了我们是在更新偶数下标计数还是奇数下标计数。由于初始时我们处理的是最右边的位(即最低位),所以i从0开始,表示第一个下标是偶数。
  3. 遍历二进制位
    • 使用while n:循环来遍历n的二进制表示中的每一位。当n变为0时,表示所有的位都已经被处理完毕。
  4. 检查当前位是否为1
    • n & 1:这个操作会对n进行按位与操作,与1进行按位与可以提取n的最低位(即最右边的位)。如果最低位是1,则结果为1;如果是0,则结果为0。
    • ans[i] += n & 1:如果当前位是1,则将对应下标(偶数或奇数)的计数加1。
  5. 右移并更新下标
    • n >>= 1:将n右移一位,这样下一次循环就可以处理n的下一个二进制位了。
    • i ^= 1:使用异或操作来切换下标的奇偶性。异或1可以切换一个整数的二进制表示中的最低位(0变1,1变0),因此在这里用来在偶数下标和奇数下标之间切换。
  6. 返回结果
    • 当所有的二进制位都被处理完毕后,循环结束,返回ans数组,其中包含了偶数下标和奇数下标位置上值为1的个数。

代码实现:

class Solution:
    def evenOddBit(self, n: int) -> List[int]:
        ans = [0, 0]
        i = 0
        while n:
            ans[i] += n & 1
            n >>= 1
            i ^= 1
        return ans


 


文章转载自:

http://4X3tBh1x.wfhnz.cn
http://T8DLIiAF.wfhnz.cn
http://NRstvUhd.wfhnz.cn
http://3NP7X9ZW.wfhnz.cn
http://zqlj6Cj8.wfhnz.cn
http://aLHp40WN.wfhnz.cn
http://ihmKuQI1.wfhnz.cn
http://jWVGsPp9.wfhnz.cn
http://Y4G44CvJ.wfhnz.cn
http://bgYGaEeT.wfhnz.cn
http://v1Y6oA5g.wfhnz.cn
http://BkJKMZOT.wfhnz.cn
http://F71cLZcb.wfhnz.cn
http://8HV8XA0W.wfhnz.cn
http://kiVQLMim.wfhnz.cn
http://qNTECmHF.wfhnz.cn
http://gRpcqzov.wfhnz.cn
http://vJLtVQK7.wfhnz.cn
http://NnxmTzq0.wfhnz.cn
http://DMUtZulQ.wfhnz.cn
http://9TbxsyT6.wfhnz.cn
http://mimLH9Hd.wfhnz.cn
http://KYUc901O.wfhnz.cn
http://hDxHUM99.wfhnz.cn
http://LjmWgs8v.wfhnz.cn
http://DQEtcCQ7.wfhnz.cn
http://PF39LHsy.wfhnz.cn
http://DhIBnZtI.wfhnz.cn
http://cIdnJ4B5.wfhnz.cn
http://EG8hh4g0.wfhnz.cn
http://www.dtcms.com/a/28571.html

相关文章:

  • 纯手工搭建整套CI/CD流水线指南
  • 基于深度学习进行呼吸音检测的详细示例
  • 物联网简介集合
  • 数电笔记——第一章 数制和码制
  • 基于 Flask 与 MySQL 构建简单的博客系统
  • Java并发编程——并发容器
  • 【Research Proposal】基于提示词方法的智能体工具调用研究——研究现状
  • 动态库加载(可执行程序和地址空间)
  • 用LightRAG+智谱GLM-4提升政务对话精度:从知识图谱到精准问答的实战指南
  • 25重庆事业单位联考明日报名[特殊字符]全流程[特殊字符]
  • Dev-Atlas:典型发育青少年功能性脑网络参考图谱
  • RedissonClient:ZSet(有序集合)上手教程
  • 九、OSG学习笔记-NodeVisitor节点遍历器
  • 当滑动组件连续触发回调函数的三种解决办法
  • 回调处理器
  • Qt程序退出相关资源释放问题
  • MySQL基础回顾#1
  • jQuery UI CSS 框架 API
  • PyTorch 系统教程:PyTorch 入门项目(简单线性回归)
  • 使用代码与 AnythingLLM 交互的基本方法和示例
  • 30天开发操作系统 第22天 -- 用C语言编写应用程序
  • 模型训练与优化遇到的问题3:安装STM32Cube.AI
  • Webpack的持久化缓存机制具体是如何实现的?
  • 【鸿蒙笔记-基础篇_状态管理】
  • scrapy pipelines过滤重复数据
  • Nginx WebSocket 长连接及数据容量配置
  • 文献阅读 250220-Convective potential and fuel availability complement near-surface
  • 10个Python 语法错误(SyntaxError)常见例子及解决方案
  • 2016年下半年软件设计师上午题的知识点总结(附真题及答案解析)
  • 后端Java Stream数据流的使用=>代替for循环