704.二分查找
题目:
题目分析:
给出一个数组和目标值,找到目标值所在的位置,返回所在位置的数组下标,如果数组中不存在目标值就返回-1
看到题目的瞬间,就想我直接一个for循环,直接可以写完收工,可看看题目,不对劲,这道题叫做二分查找,所以需要用二分查找解决。
回忆二分查找:
通过比较中间位置的值和目标值的大小关系,不断的缩小查找范围,知道最后不满足自己设定的条件
代码部分:
class Solution {
public int search(int[] nums, int target) {
int left=0;
int right=nums.length-1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] > target) {
right = mid - 1;
} else if (nums[mid] < target) {
left = mid + 1;
} else{
return mid;
}
}
return