[leetcode 35] Search Insert Position
2015-09-21 22:31
169 查看
1 题目:
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.
Here are few examples.
2 思路:
变相的二分搜索
注意处理边界和溢出情况
3 代码:
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.
Here are few examples.
[1,3,5,6], 5 → 2
[1,3,5,6], 2 → 1
[1,3,5,6], 7 → 4
[1,3,5,6], 0 → 0
2 思路:
变相的二分搜索
注意处理边界和溢出情况
3 代码:
public int searchInsert(int[] nums, int target) { // pre handle if(nums[0] > target){ return 0; } if(nums[nums.length-1] < target){ return nums.length; } /* again, binary search */ int pre = 0; int after = nums.length-1; while(pre<=after){ int mid = pre + ((after-pre)>>1); if(nums[mid]==target){ return mid; }else if(nums[mid]<target){ if(mid < nums.length-1 && nums[mid+1]>target){ return mid+1; } pre = mid+1; }else if (nums[mid]>target){ if(mid>0 && nums[mid-1]<target){ return mid; } after = mid-1; } } // will never reach here return 0; }
相关文章推荐
- mysql函数大全
- oracle 多表查询语句
- 【软考之路】软考视频总结(上)
- Leetcode71: Binary Tree Inorder Traversal
- CodeBlocks中程序的多文件组织
- 在生鲜电商领域创业到底是怎样的一种苦逼体验?【创业者说】
- 4 Median of Two Sorted Arrays
- mysql免安装版配置
- 2015 ACM/ICPC 沈阳赛区网络赛 1010.Jesus Is Here (HDOJ5459)
- doget和dopost的区别
- 迅维网
- java的Class类
- win10使用genymotion出现Unable to start the virtual device(VirtualBox cannot start the virtual device)
- 栈
- Python编程学习——装饰器
- 命名规范
- CoreAnimation 核心动画一 (一些常用属性 和 方法)
- JavaScript操作数组
- 在线程池使用Callable和Runnable的区别以及如何关闭线程
- Cent OS6.7 安装Oracle 11Gr2出错