코린이의 소소한 공부노트

[LeetCode/Easy] 704. Binary Search 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 704. Binary Search

무지맘 2023. 3. 18. 22:36

1. Input

1) int[] nums

2) int target

 

2. Output

1) nums에서 target을 찾아 그 인덱스를 반환

- targetnums에 없다면 -1을 반환

 

3. Constraint

1) 1 <= nums.length <= 10^4

2) - 10^4 < nums[i], target < 10^4

3) nums에는 중복된 요소가 없다.

4) nums는 오름차순으로 정렬되어 있다.

5) 알고리즘은 반드시 O(lg n)을 따라야 한다.

 

4. Example

Input: nums = [-1,0,3,5,9,12], target = 9 -> Output: 4

Input: nums = [-1,0,3,5,9,12], target = 2 -> Output: -1

 

5. Code

1) 첫 코드(2023/03/18)

int low = 0, high = nums.length-1, mid, result = -1;
while(low<=high && result==-1){
    mid = (low+high)/2;
    if(nums[mid]==target)
        result = mid;
    else if(nums[mid]<target)
        low = mid + 1;
    else
        high = mid - 1;
}
return result;