题目要求:在一个有序的数组中,找到一个目标值,返回该值得下标。若没有找到该值,则返回该值顺序插入的下标
例如,
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
public int searchInsert(int[] nums, int target) { int index=0; for( ; index=target){ break; } } return index; }
使用双指针后效率比单指针效率高
public int searchInsert2(int[] nums, int target) { int pointerLeft = 0; int pointerRight = nums.length-1; for( ; pointerLeft<=pointerRight ; pointerLeft++, pointerRight--){ if(nums[pointerLeft]>=target){ return pointerLeft; } if(nums[pointerRight]使用二分法也可以,但是二分法可能会在数组有重复数字情况下产生多个答案
public int searchInsert3(int[] nums, int target) { int pointerLeft = 0; int pointerRight = nums.length-1; while(pointerLeft<=pointerRight){ int mid = (pointerLeft+pointerRight)/2; if(nums[mid]==target){ return mid; }else if(nums[mid]>target){ pointerRight = mid-1; }else{ pointerLeft = mid+1; } } return pointerLeft; }
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/66876.html
Leetcode[35] Search Insert Position Given a sorted array and a target value, return the index if thetarget is found. If not, return the index where it would be if it wereinserted in order.You may assu...
摘要:如果目标值不存在于数组中,返回它将会被按顺序插入的位置。因此需要关注这些测试用例,在单机上逐个测试成功后再提交。因为题目中只要求返回索引,并不要求插到数组中,所以应该说又简化了一些,是一道简单题目。争取在下一篇给出优化解法。 「 Leetcode刷题 」系列,仅为刷题过程中对于算法和编程的思考与记录,如果对你有帮助欢迎点赞收藏。博主也在探索刷题过程中,记录的一些知识点可能很小白,因此主...
摘要:二分搜索法复杂度时间空间思路这是最典型的二分搜索法了。这题中,我们返回就行了,如果返回,要注意的情况。代码条件是找到了在左边在右边 Search Insert Position Given a sorted array and a target value, return the index if the target is found. If not, return the inde...
Problem 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 a...
摘要:自己没事刷的一些的题目,若有更好的解法,希望能够一起探讨项目地址 自己没事刷的一些LeetCode的题目,若有更好的解法,希望能够一起探讨 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
阅读 1652·2019-08-30 15:54
阅读 3277·2019-08-26 17:15
阅读 3477·2019-08-26 13:49
阅读 2554·2019-08-26 13:38
阅读 2258·2019-08-26 12:08
阅读 2920·2019-08-26 10:41
阅读 1345·2019-08-26 10:24
阅读 3340·2019-08-23 18:35