leetcode-每日打卡-day 5

leetcode 每日打卡

附上kuangbin大佬话激励自己:
人一我百,人十我万,追逐青春的梦想,怀着自信的心,永不放弃!
2020.2.12


记录下来自己做题时得思路,并不一定是最优解

461. 汉明距离

解法一:
class Solution {
public:
    int hammingDistance(int x, int y) {
        int ans = 0;
        while(x > 0 || y > 0)
        {
            if((x & 1) ^ (y & 1))ans++;
            x = x >> 1;y =  y >> 1;
        }
        return ans;
    }
};

解法二
class Solution {
public:
    int hammingDistance(int x, int y) {
        int a = x ^ y , sum = 0;
        while(a)
        {
            sum += a & 1;
            a = a >> 1;
        }
        return sum;
    }
};

1342. 将数字变成 0 的操作次数

class Solution {
public:
    int numberOfSteps (int num) {
        int ans = 0;
        while(num)
        {
            ans++;
            if(num % 2 == 0)num = num >> 1;
            else num -= 1;
        }
        return ans;
    }
};

1290. 二进制链表转整数

class Solution {
public:
    int getDecimalValue(ListNode* head) {
        string s;
        while(head)
        {
            if(head->val == 0)s += "0";
            else s+="1";
            head = head->next;
        }
        int ans = 0 ,k = 1;
        for(int i = s.size() - 1;i >= 0; i--)
        {
            if(s[i] == '1')ans += k;
            k *= 2;
        }
        return ans;
    }
};

猜你喜欢

转载自www.cnblogs.com/wlw-x/p/12301093.html