题目描述:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
解答:
class Solution {
public int searchInsert(int[] nums, int target) {
int a = 0; //如果数组中第一个元素
if (nums[0] > target) a = 0;//大于目标值或最后一个元素大于目标值,可以
else if (nums[nums.length] < target) a = nums.length;//直接把得到目标值应添加的位置
else {
for (int i = 0; i < nums.length; i++) {
if (nums[i] == target) a = i;//数组中存在目标值,直接让a接收数组下标
else if (nums[i] < target && nums[i + 1] > target) {
a = i + 1; //因为数组有序,所以当出现目标值大小夹在
} //数组两个值之间的时候
} //可以得到应添加的位置
}
return a;
}
}