20250220力扣每日一题

知识点
- 位运算符
&
:可以用来判断一个数的奇偶性;- 如果
n & 1
的结果是1
,那么这个数就是奇数;结果为0
,那么这个数就是偶数
- 如果
- 异或运算符
^
:可以让一个变量的值在0
和1
之间交替变化
解题思路
题解思路
- 初始化变量
i
用来表示当前数位是奇数位还是偶数位 - 当前数位如果为1,就在数组对应下标
+1
我的思路
- 模拟
实现代码
题解代码
class Solution {
public:
vector<int> evenOddBit(int n) {
int i = 0;
vector<int> res(2);
while(n){
res[i] += n & 1;
n >>= 1;
i ^= 1;
}
return res;
}
};
我的代码
class Solution {
public:
vector<int> evenOddBit(int n) {
vector<int> t;
while(n){
t.push_back((n % 2));
n /= 2;
}
int even = 0, odd = 0;
// even是偶数,odd是奇数
for(int i = t.size() - 1; i >= 0; i --)
cout << t[i];
cout << endl;
for(int i = 0; i < t.size(); i ++){
if(t[i]){
if(i % 2 == 0)
even ++;
else
odd ++;
}
}
return {even, odd};
}
};
Enjoy Reading This Article?
Here are some more articles you might like to read next: