Google算法题:E-二分查找
来源:互联网 发布:js 删除table tr 编辑:程序博客网 时间:2024/06/06 03:44
http://www.lintcode.com/zh-cn/problem/first-position-of-target/
http://www.jiuzhang.com/article/Google%202016%E5%B9%B412%E6%9C%88New%20Grad%20SDE%E7%94%B5%E9%9D%A2%E9%9D%A2%E7%BB%8F/
给定一个排序的整数数组(升序)和一个要查找的整数target
,用O(logn)
的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1
。
样例
在数组 [1, 2, 3, 3, 4, 5, 10]
中二分查找3
,返回2
。
class Solution { /** * @param nums: The integer array. * @param target: Target to find. * @return: The first position of target. Position starts from 0. */ public int binarySearch(int[] nums, int target) { //write your code here if(nums==null || nums.length==0) return -1; int n = nums.length; int s = 0, e = n-1; while(s<=e){ int m = (s+e)/2; if(nums[m]==target){ while(m>0 && nums[m-1]==target){ //由于找的是第一个满足target的下标,需要特殊处理 m--; } return m; }else if(nums[m]>target){ e=m-1; }else{ s=m+1; } } return -1; }}
阅读全文
0 0
- Google算法题:E-二分查找
- 算法题:二分查找
- E简单二分查找
- 查找算法 二分查找
- 查找算法:二分查找
- 算法--查找--二分查找
- 查找算法---二分查找
- [算法]二分查找算法
- 算法----二分查找算法
- 查找算法:二分查找算法
- [转载]查找算法----二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法_二分查找
- 算法 二分查找(折半查找)
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- Unity10--炮台发射子弹程序、Transform维护父子关系
- isMemberOfClass & isKindOfClass区别
- Spark Streaming 调优指南
- 用read命令来获取变量中的值
- sc2017新高二&高一模拟赛6 总结
- Google算法题:E-二分查找
- as86汇编程序的编译与链接
- 【Java进阶】实现自己的ORM框架
- 进程 线程
- 微分享-快速高效的从一个list转化到另一个list
- Detecting Skin in Images & Video Using Python and OpenCV皮肤检测
- 普通文件格式与二进制文件格式互转
- 动态规划-最大子段和系列问题
- Java多线程编程之Active Object模式