704. Binary Search (javascript)


難易度李智正解率54%
ターゲットと一致するインデックス値を返すのは問題です.バイナリ調査を実施すればいいです.どんなに貴重な方法でやったことがあります運行時間があるのでwhileドアで外しました
Example 1:
Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4
Example 2:
Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1
問題を解く
let search = function(nums, target){
	let start = 0;
    let end = nums.length-1; // 마지막 인덱스번호
    while(start <= end){ // start < end가 아닌 이유 배열을 1개를 받을 때도 사용하게
    	let pivot = Math.floor((start+end)/2); // 배열의 중간값 계산
        if(nums[pivot] === target){
        	return pivot; // 인덱스값 반환
        }else if(nums[pivot] > target){
        	end = pivot - 1; // 중간값이 크면 중간 기준에서 왼쪽만 검사
        }else{
        	start = pivot + 1;// 중간값이 작으면 중간 기준에서 오른쪽만 검사
        }
    }
	return -1; // 없으면 -1 리턴
}