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
問題を解く
ターゲットと一致するインデックス値を返すのは問題です.バイナリ調査を実施すればいいです.どんなに貴重な方法でやったことがあります運行時間があるので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 리턴
}
Reference
この問題について(704. Binary Search (javascript)), 我々は、より多くの情報をここで見つけました https://velog.io/@honggilseong/704.-Binary-Search-javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol