Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 1.17 KB

35. 搜索插入位置.md

File metadata and controls

46 lines (35 loc) · 1.17 KB

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 1:

输入: [1,3,5,6], 5 输出: 2 示例 2:

输入: [1,3,5,6], 2 输出: 1 示例 3:

输入: [1,3,5,6], 7 输出: 4 示例 4:

输入: [1,3,5,6], 0 输出: 0

class Solution {
 public int searchInsert(int []nums,int target){
        int mid;
        int left=0,right=nums.length-1;
        while(left<=right){
            mid=(left+right)/2;
            if (nums[mid]==target){
                return mid;
            }else if (nums[mid]>target){
                right=mid-1;
            }else {
                left=mid+1;
            }
        }
        return left;
    }
}

这题就是一道比较常规的二分查找,有一个细节可能要注意一下这里就mid的时候推荐使用mid=left+(right-left),防止溢出的情况出现,除此之外这题就是一道非常简单的二分查找的题啦。