嘎数组-搜索插入位置
Posted utomboy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嘎数组-搜索插入位置相关的知识,希望对你有一定的参考价值。
题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
解答:(其中一开始没有注意到target > nums[len - 1] 的情况)
class Solution { public int searchInsert(int[] nums, int target) { int len = nums.length; if (len == 0) { return 0; } int res = 0; for (int i = 0; i < len-1; i++) { if (nums[i] < target && target < nums[i+1]) { res = ++i; break; } else { if (nums[i] == target) { res = i; break; } if (nums[i+1] == target) { res = i+1; break; } } } // 大于最后一位数 if (target > nums[len - 1]) { res = len; } return res; } }
看了看别人的解法,我写的除了for循环之外的上下两种解法都可以归结为 return nums.length;
然后我把res去掉直接就在for循环里面return,最后return了nums.length,然后就出错了,因为for循环里面没有考虑到target < nums[0]的情况,上面那种写法不出错是因为res初始化的时候为0了。
其实for循环里面只要判断是不是小于就可以了
public int searchInsert(int[] nums, int target) { for(int i = 0; i < nums.length;i++){ if(nums[i] >= target){ return i; } } return nums.length; }
以上是关于嘎数组-搜索插入位置的主要内容,如果未能解决你的问题,请参考以下文章