20250220力扣每日一题

知识点

  • 位运算符&:可以用来判断一个数的奇偶性;
    • 如果n & 1的结果是1,那么这个数就是奇数;结果为0,那么这个数就是偶数
  • 异或运算符^:可以让一个变量的值在01之间交替变化

解题思路

题解思路

  • 初始化变量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:

  • Google Gemini updates: Flash 1.5, Gemma 2 and Project Astra
  • Displaying External Posts on Your al-folio Blog
  • 强化学习导论
  • 企业项目实训
  • 面试总结