LeetCode 35 搜索插入位置 难度:简单
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
1.我的思路
遍历一遍数组,先判断一组特殊值,如果目标值大于数组的最后一个值,那么返回的位置必然是数组的最后一个。
如果是其他情况,判断数组对应下标的值如果大于等于目标值,那么当前位置就是元素所在的位置或者即将插入的位置。
class Solution {
public int searchInsert(int[] nums, int target) {
int flag = 0;
if (target>nums[nums.length-1]){
flag = nums.length;
}else{
for (int i=0;i<nums.length;i++){
if (nums[i]>=target){
flag=i;
break;
}
}
}
return flag;
}
}
执行结果:通过
显示详情执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:38.2 MB, 在所有 Java 提交中击败了74.84%的用户
2.官方解法
这道题说白了就是一道查找数组元素下标的问题。所以官方解法使用了效率更高的二分查找