经典的二分法
2017-01-20 14:38
417 查看
Find any position of a target number in a sorted array. Return -1 if target does not exist.
Example
Given [1, 2, 2, 4, 5, 5].
For target = 2, return 1 or 2.
For target = 5, return 4 or 5.
For target = 6, return -1.
二分法模板:
start + 1 < end
start + (end - start) / 2
a[mid] == , < , >
a[start], a[end] ? target
Example
Given [1, 2, 2, 4, 5, 5].
For target = 2, return 1 or 2.
For target = 5, return 4 or 5.
For target = 6, return -1.
二分法模板:
start + 1 < end
start + (end - start) / 2
a[mid] == , < , >
a[start], a[end] ? target
public class Solution { /** * @param nums: An integer array sorted in ascending order * @param target: An integer * @return an integer */ public int findPosition(int[] nums, int target) { // Write your code here if (nums == null || nums.length == 0) { return -1; } int start = 0; int end = nums.length - 1; while (start + 1 < end) { int mid = start + (end - start) / 2; if (nums[mid] == target) { return mid; } else if (nums[mid] < target) { start = mid; } else { end = mid; } } if (nums[start] == target) { return start; } if (nums[end] == target) { return end; } return -1; } }
相关文章推荐
- MediaCodec文档翻译
- lvs squid相关
- 查看嵌入式设备的CPU频率
- No.001内存空间分几部分:代码段、数据段,栈,堆 (收集整理)
- 【codevs 1373】 射命丸文
- SQL语言操作mysql数据库
- Linux系统入门学习:在Ubuntu或者Debian中启动后进入命令行
- 最小二乘与梯度下降
- 共同父域下的单点登录SSO
- Excel_常规表操作总结_亲自跑过程序可用
- 加拿大学校申请条件,雅思带你一窥究竟
- kubernetes flannel neutron calico ovs-vxlan网络方案性能测试分析
- Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
- Eclipse SVN
- vnc远程桌面centos6.5
- 机器学习——支持向量机SVM
- 文章标题
- spring中redistemplate不能用通配符keys查出相应Key的问题
- Cookie深度解析,SSO铺垫
- maven工程本地打包方法