搜索插入位置

此博客链接: https://www.cnblogs.com/ping2yingshi/p/13337999.html

搜索插入位置

题目链接:https://leetcode-cn.com/problems/search-insert-position/submissions/

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

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

示例 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 len=nums.length;
        for(int i=0;i<len;i++)
        {
            if(nums[i]>=target)
            return i;  
        }
      
        return len;
    }

}

思路二代码:

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

}
原文地址:https://www.cnblogs.com/ping2yingshi/p/13337999.html