[刷题]Inorder Successor in BST
2015-10-13 10:23
375 查看
[LintCode]Inorder Successor in BST
public class Solution { /** * @param A: An integer array * @param target: An integer * @return : An integer which is the index of the target number */ public int searchBigSortedArray(int[] A, int target) { // 2015-10-13 if (A == null || A.length == 0) { return -1; } // 优化end以缩小搜索范围 int end = 0; while (end < A.length -1 && A[end] < target) { end = end * 2 + 1; if (end >= A.length) { end = A.length - 1; } } // 二分搜索 int start = 0; while (start < end - 1) { int mid = start + (end - start) / 2; if (A[mid] >= target) { end = mid; } else { start = mid; } } if (A[start] == target) { return start; } if (A[end] == target) { return end; } return -1; } }
相关文章推荐
- 常用opencv函数
- 打造你的开发神器:介绍Android Studio上的几个插件
- 002-Elasticsearch环境安装
- 【解决】Spark On Yarn执行中executor内存限制问题
- 【解决】Spark运行时产生的临时目录的问题
- Missing artifact com.sun:tools:jar:1.5.0:system 补充
- .UIView的layer
- 9月国内电脑分辨率TOP10:1920*1080获双料冠军
- 001-Elasticsearch入门
- 设计模式之模板方法
- jQuery support 源码解读
- 做商品编码排序有感
- 很好的博客和网站记录
- ios9 CoreSpotlight
- 一次页面引用文件无法正确加载问题的解决
- 神经网络入门3
- RAC 11G修改不同网段的IP地址
- Android的frameworks层键盘事件处理流程分析
- 用jquery技术实现table的奇数行变色
- 矩形操作工具箱