[leetcode]問題解答と解説。704. Binary Search [JavaScript]
皆さんleetCode好きですよね。私も好きです。
なかなかやる機会がないのですよね。
leetCodeの使い方や解説ではなく実際に問題を解決するために何をしたか
をメモ書きして行きます
私はある決意をして今挑んでいます。
モチベーションを保つためだけにこれをやっています。
では今日のleetCode。
【704. Binary Search】の解決策と方法。自分がまず挑戦して
やったことをさらけ出します。
※下にある自分のコードは自分で設けた制限時間内に書けたところまです。
これは
「私は年末までこれを続けたらどんなleetCoderになるか」のシリーズ。
実験的ブログ更新です。
[leetcode] 704. Binary Search ルール
Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1.
You must write an algorithm with O(log n) runtime complexity.
昇順にソートされた整数の配列numsと整数のtargetが与えられたとき, numsからtargetを検索する関数を書きなさい.targetが存在する場合、そのインデックスを返す。そうでなければ -1 を返す。
実行時の計算量がO(log n)であるアルゴリズムを書け.
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
exampleは実際の問題ページを見てください
[leetcode] 704. Binary Search 問題ページ
[leetcode] 704. Binary Search
my code is not good
function search(nums, target) {
let last = nums.length -1;
// -5
let first = 0
while(first < last){
let mid = Math.floor((last - first) / 2) + 1
if(nums[mid] === target) return mid
if(nums[mid] < target){
first = mid
continue;
}
last = mid
}
return -1
};
search([-1, 0, 3, 5, 9, 12], 9)
時間切れ。last - firstの所だった、、
[leetcode] 704. Binary Search。discussの中の一つの解答例
数ある中からJavaScriptのもので、理解しやすい解説をピックアップしました。
discussから見ればさらにもっと違う方法で真似したくなるものがあるかもしれない
JavaScriptでfilterされている、discussはこちらから
var search = function(nums, target) {
let start = 0,end = nums.length-1
while(start <= end){
let mid = Math.floor((start+end)/2)
if(nums[mid] == target){
return mid
}else if(nums[mid] < target){
start = mid+1
}else{
end = mid-1
}
}
return -1
};
[leetcode] 704. Binary Searchをやってみて感想
- 悔しい