コードが半分に書かれた、この問題のための2つの顔をするアルゴリズムを要約し、ロジックが問題を抱えているようだ自分自身を発見し、書き留めする方法がないために、最終的につながる面接のBaiduの瞬間をそれを行うには、瞬時に感じませんでした。.. .......
騒ぎ、見た目に直接タイトル
要件:達成するための反復的な方法を使用して、バイナリ検索を書き、アルゴリズム設計のテストケース
インタビューの後、このトピックはからの書き込みコードには本当にシンプルで簡単です見ます
public class Algorithm{
public int binarySearch(int[] nums,int target){
int left = 0;
int right = nums.length-1;
while(left<=right){
int mid =(left+right)/2;
if(nums[mid]==target){
return mid;
}
else if(nums[mid]<target){
left = mid +1;
}
else if(nums[mid]>target){
right = mid-1;
}
}
return -1;
}
}
テストケース:
public class AlgorithmTestcase{
public static void main(String[] args){
Algorithm algorithm = new Algorithm();
int [] nums = {1,3,5,7,8,9};
int target = 7;
System.out.println(algorithm.binarySearch(nums,target))
}
}
コレクションが返された場合、ターゲットがNUMSに見つからない場合、彼らは見つけることができる場合、私の書き込み二分法が目標値を上回っているので、もちろん、私はここで、正のテストケースを書くことだ、それは、インデックスindexの唯一のゴールを返します。 -1この場合、読者は自分自身を書き込みます。