Search Insert Position
2015-07-10 08:51
295 查看
容易 搜索插入位置
29%通过
给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。
你可以假设在数组中无重复元素。
您在真实的面试中是否遇到过这个题?
Yes
样例
[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 class Solution { public int searchInsert(int[] nums, int target) { int low = 0; int high = nums.length-1; while(low < high){ int mid = low + (high - low)/2; if(target > nums[mid]){ low = mid + 1; }else if(target < nums[mid]){ high = mid -1; }else{ return mid; } } if(target > nums[low]){ return low+1; }else{ return low; } } }
lintcode:
public class Solution { /** * param A : an integer sorted array * param target : an integer to be inserted * return : an integer */ public int searchInsert(int[] A, int target) { int start = 0; int end = A.length - 1; int mid; if(A==null || A.length == 0){ return 0; } if (target < A[0]) { return 0; } // find the last number less than target while (start + 1 < end) { mid = start + (end - start) / 2; if (A[mid] == target) { return mid; } else if (A[mid] < target) { start = mid; } else { end = mid; } } //target一共有4种大小,=start,>start,=end,>end if (A[end] < target) { return end + 1; } if (A[end] == target) { return end; } if (A[start] < target) { return start + 1; } return start; } }
相关文章推荐
- dedecms 列表 用分页标签 判断 当第一页则显示,第二页以上不显示 土办法!
- Win10预览版10166升级前需备份Edge浏览器内容 附操作方法
- interweaving of objects DEMO
- 下拉菜单
- 微软Win10 SDK预览版10166中文版下载 更新内容及已知问题汇总
- Cocos2d-Java安装和配置跨平台游戏引擎以及相关的开发工具
- 试用期交社保吗
- [转载] what's goole mock
- 定位,虚拟键盘,推送有问题
- 定位,虚拟键盘,推送有问题
- 社保个人交多少
- C++指针学习
- CCLayer在Touch事件(Standard Touch Delegate和Targeted Touch Delegate)
- Android 模糊图片技术
- 冒泡排序
- SQL集合运算参考及案例(二):树形节点数量逐级累计汇总
- 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
- ld: -pie can only be used when targeting iOS 4.2 or later clang: error: linker command failed with e
- 使用 EntitysCodeGenerate 生成 PostgreSQL 的代码
- iOS开发 替换NSLog打印设置