35.搜索插入位置

题目描述

原题
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
1
输入: [1,3,5,6], 5
2
输出: 2
Copied!
示例 2:
1
输入: [1,3,5,6], 2
2
输出: 1
Copied!
示例 3:
1
输入: [1,3,5,6], 7
2
输出: 4
Copied!
示例 4:
1
输入: [1,3,5,6], 0
2
输出: 0
Copied!

题解

1
class Solution {
2
public int searchInsert(int[] nums, int target) {
3
int low = 0, high = nums.length -1;
4
if(target < nums[low])
5
return low;
6
else if(target > nums[high])
7
return high + 1;
8
while (low <= high){
9
int middle = (low + high ) >>> 1;
10
if(nums[middle] > target)
11
high = middle - 1;
12
else if(nums[middle] < target)
13
low = middle + 1;
14
else
15
return middle;
16
}
17
return low ;
18
}
19
}
Copied!
最近更新 10mo ago
复制链接