个人网站上线流程,汽车网站建设策划书,快速搭建网站教程,视频网站如何赚钱【LetMeFly】2595.奇偶位数#xff1a;位运算
力扣题目链接#xff1a;https://leetcode.cn/problems/number-of-even-and-odd-bits/
给你一个 正 整数 n 。
用 even 表示在 n 的二进制形式#xff08;下标从 0 开始#xff09;中值为 1 的偶数下标的个数。
用 odd 表示…【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
解题方法位运算
解决这道题需要解决三个问题 如何取出 n n n的最低位 n 1即可 如何移除 n n n的最低为 直接右移n 1即可 如何变换奇偶下标 布尔类型index !index或整型index ^ 1都可
时间复杂度 O ( log ( n ) ) O(\log(n)) O(log(n))。 log 1024 10 \log 102410 log102410运算次数很低。空间复杂度 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:vectorint evenOddBit(int n) {vectorint 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:51from typing import Listclass Solution:def evenOddBit(self, n: int) - List[int]:ans [0, 0]index Falsewhile n:ans[index] n 1index not indexn 1return ansJava
/** 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和我的个人博客原创不易转载经作者同意后请附上原文链接哦~ 千篇源码题解已开源 Tisfyhttps://blog.letmefly.xyz/2025/02/20/LeetCode 2595.奇偶位数/