#Leetcode# 1009. Complement of Base 10 Integer
|
https://leetcode.com/problems/complement-of-base-10-integer/ ? Every non-negative integer? The?complement?of a binary representation?is the number in binary you get when changing every? For a given number? ? Example 1: Input: 5
Output: 2 Explanation: 5 is "101" in binary,with complement "010" in binary,which is 2 in base-10.
Example 2: Input: 7
Output: 0 Explanation: 7 is "111" in binary,with complement "000" in binary,which is 0 in base-10.
Example 3: Input: 10
Output: 5 Explanation: 10 is "1010" in binary,with complement "0101" in binary,which is 5 in base-10.
代码: class Solution {
public:
int bitwiseComplement(int N) {
if(N == 0) return 1;
vector<int> ans;
while(N) {
ans.push_back(!(N % 2));
N /= 2;
}
int sum = 0;
for(int i = 0; i < ans.size() / 2; i ++)
swap(ans[i],ans[ans.size() - i - 1]);
for(int i = 0; i < ans.size(); i ++)
sum += ans[i] * pow(2,ans.size() - 1 - i);
return sum;
}
int pow(int a,int b) {
int ans = 1;
while(b) {
if(b % 2) {
ans *= a;
b --;
} else {
a *= a;
b /= 2;
}
}
return ans;
}
};
周末开始啦 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
