Leetcode Java Bitwise AND of Numbers Range
업데이트:
문제
코드
public class Solution {
public int rangeBitwiseAnd(int left, int right) {
int count = 0;
while (left != right) {
left >>= 1;
right >>= 1;
count++;
}
return left << count;
}
}
결과
설명
-
주어진 정수 left와 right의 binary code 중 공통된 접두사를 찾아 해당 값을 반환하는 문제이다.
-
공통된 접두사를 찾기 위해 이동한 횟수를 저장할 변수인 count를 정의하고 0으로 초기화 한다.
- left와 right가 동일한 값이 되기 전까지 두 값의 bit를 한 칸 오른쪽으로 이동시키고, count를 증가시킨다.
- left와 right의 bit를 우측으로 계속 이동하다 동일한 값이 되는 구간이 두 값의 공통된 접두사가 되는 지점이다.
- 공통된 접두사가 저장된 left에 우측으로 이동한 횟수인 count만큼 좌측으로 이동시켜 해당 값을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기