原文题目
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
中文题意
输入一个有序数组和一个数值,如果该数值存储在数组中,那么返回下标,如果不存在数组中,那么返回它应该存放的位置下标。(数组中如果有多个元素和给定数值相等,返回最小的位置下标)。
分析
注意所给的数组是有序的,那么从前向后遍历数组的时候,到达i位时,target一定比i位之前的元素大,若i=nums.length,那么返回nums.length。若target == nums[i],返回i。如果target < nums[i],那么返回i。
java实现
class Solution {
public int searchInsert(int[] nums, int target) {
int i = 0;
for(; i < nums.length;i++){
if(target == nums[i])
return i;
else if(target < nums[i]){
return i;
}else{
continue;
}
}
return i;
}
}