题目的链接在这里:https://leetcode-cn.com/problems/binary-search/
题目大意
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。一、示意图
二、解题思路
二分
二分
代码如下:
class Solution {
public int search(int[] nums, int target) {
//先进行边界判断
if(nums.length==1){
if(nums[0]==target) {
return 0;
}else{
return -1;
}
}
//二分查找 num是有序的
int start=0;
int end=nums.length-1;
while (start<=end){
int mid=(end+start)/2;
if(nums[mid]==target){
return mid;
}else if(nums[mid]>target){
//说明在前面
end=mid-1;
}else if(nums[mid]<target){
start=mid+1;
}
}
return -1;
}
}