搜索插入位置
此博客链接: 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; } }
出来混总是要还的