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

LeetCode 2595.奇偶位数:位运算

【LetMeFly】2595.奇偶位数:位运算

力扣题目链接:https://leetcode.cn/problems/number-of-even-and-odd-bits/

给你一个 整数 n

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

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

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

 

示例 1:

输入:n = 17
输出:[2,0]
解释:17 的二进制形式是 10001 。 
下标 0 和 下标 4 对应的值为 1 。 
共有 2 个偶数下标,0 个奇数下标。

示例 2:

输入:n = 2
输出:[0,1]
解释:2 的二进制形式是 10 。 
下标 1 对应的值为 1 。 
共有 0 个偶数下标,1 个奇数下标。

 

提示:

  • 1 <= n <= 1000

解题方法:位运算

解决这道题需要解决三个问题:

  1. 如何取出 n n n的最低位?

    n & 1即可

  2. 如何移除 n n n的最低为?

    直接右移n >>= 1即可

  3. 如何变换奇偶下标?

    布尔类型index = !index或整型index ^= 1都可

  • 时间复杂度 O ( log ⁡ ( n ) ) O(\log(n)) O(log(n)) log ⁡ 1024 = 10 \log 1024=10 log1024=10,运算次数很低。
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-02-20 11:04:55* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-20 11:06:12*/
class Solution {
public:vector<int> evenOddBit(int n) {vector<int> ans(2);bool index = false;while (n) {ans[index] += n & 1;index = !index;n >>= 1;}return ans;}
};
Python
'''
Author: LetMeFly
Date: 2025-02-20 11:06:38
LastEditors: LetMeFly.xyz
LastEditTime: 2025-02-20 11:08:51
'''
from typing import Listclass Solution:def evenOddBit(self, n: int) -> List[int]:ans = [0, 0]index = Falsewhile n:ans[index] += n & 1index = not indexn >>= 1return ans
Java
/** @Author: LetMeFly* @Date: 2025-02-20 11:06:42* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-20 11:10:57*/
class Solution {public int[] evenOddBit(int n) {int[] ans = new int[2];int index = 0;while (n > 0) {ans[index] += n & 1;index ^= 1;n >>= 1;}return ans;}
}
Go
/** @Author: LetMeFly* @Date: 2025-02-20 11:06:49* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-02-20 11:18:27*/
package mainfunc evenOddBit(n int) []int {ans := make([]int, 2)for index := 0; n > 0; n >>= 1 {ans[index] += n & 1index ^= 1}return ans
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

Tisfy:https://blog.letmefly.xyz/2025/02/20/LeetCode 2595.奇偶位数/

http://www.lryc.cn/news/541038.html

相关文章:

  • 一周学会Flask3 Python Web开发-response响应格式
  • uni-app开发app时 使用uni.chooseLocation遇到的问题
  • Android Hal AIDL 简介 (一)
  • 鸿蒙初学者学习手册(HarmonyOSNext_API14)_组件截图(@ohos.arkui.componentSnapshot (组件截图) )
  • 华为昇腾910b服务器部署DeepSeek翻车现场
  • [展示]Webrtc NoiseSuppressor降噪模块嵌入式平台移植
  • golang内存泄漏
  • 安科瑞能源物联网平台助力企业实现绿色低碳转型
  • Android Http-server 本地 web 服务
  • 腾讯的webUI怎样实现deepseek外部调用 ; 腾讯云通过API怎样调用deepseek
  • DeepSeek VS ChatGPT-速度、准确性和成本
  • 内外网隔离文件传输解决方案|系统与钉钉集成+等保合规,安全提升70%
  • Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)
  • 最新版IDEA下载安装教程
  • MacOS 15.3 卸载系统内置软件
  • 发现问题 python3.6.13+django3.2.5 只能以asgi启动server 如何解决当前问题
  • python3+TensorFlow 2.x(六)自编码器
  • Redis-AOF
  • 【DeepSeek】本地部署,保姆级教程
  • 并查集算法篇上期:并查集原理及实现
  • 如何在WPS打开的word、excel文件中,使用AI?
  • 【Deepseek+Dify】wsl2+docker+Deepseek+Dify部署本地大模型知识库问题总结
  • C++初阶——简单实现vector
  • 1.21作业
  • 深度集成DeepSeek大模型:WebSocket流式聊天实现
  • Jmeter连接数据库、逻辑控制器、定时器
  • 『Linux笔记』进程间通信(IPC)详细介绍!
  • Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?
  • Visual Studio 2022配置网址参考
  • Redis中集合(Set)常见命令详解