https://leetcode.com/problems/complement-of-base-10-integer/
첫번째 방법
- 2 로 나누기 비트연산하면서 0 to 1 , 1 to 0으로 변경한 비트 값을 더해줌
2번째 방법 - digit을 구한후 해당 xor 연산으로 한번에 풀었음
Runtime: 0 ms, faster than 100.00% of Java online submissions for Complement of Base 10 Integer.
class Solution {
public int bitwiseComplement(int N) {
if(N==0){
return 1;
}
int digit = 0;
int sum =0;
while (N> 0){
int remainder = N % 2 ;
N = N>>1;
if(remainder == 0 ){
sum += 1<< digit;
}
digit++;
}
return sum;
}
}
두번째 코드
class Solution {
public int bitwiseComplement(int N) {
int digit =1;
int n = N;
while((n= n >> 1) > 0){
digit++;
}
int compare = (2 << digit-1) -1;
return N^compare;
}
}
No comments:
Post a Comment