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;
}
};