35. Search Insert Position
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Example 1:
Input: [1,3,5,6], 5 Output: 2
Example 2:
Input: [1,3,5,6], 2 Output: 1
Example 3:
Input: [1,3,5,6], 7 Output: 4
Example 4:
Input: [1,3,5,6], 0 Output: 0
搜索插入位置
给定排序数组和目标值,如果找到目标,则返回索引。如果没有,请返回索引按顺序插入的索引。
可以假设数组中没有重复项。
思路:从左至右与 target 比较
- 如果当前数小于 target 时,index++
- 如果当前数大于等于 target 时,返回index
- 特殊情况 target 比数组中所有数都大,返回 index + 1
public int searchInsert(int[] nums, int target) { int index = 0; while (index < nums.length) { if (nums[index] < target){ index++; }else if (nums[index] >= target){ return index; } if (index == nums.length - 1 && nums[index] < target){ return index + 1; } } return index; }