Java实现-二分查找
2017-07-04 11:00
417 查看
给定一个排序的整数数组(升序)和一个要查找的整数
您在真实的面试中是否遇到过这个题?
Yes
样例
在数组
target,用
O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回
-1。
您在真实的面试中是否遇到过这个题?
Yes
样例
在数组
[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 long left=0; long right=nums.length-1; long index=-1; while(left<=right){ long mid=(right+left)/2; if(nums[(int) mid]==target){ index=mid; break; }else if(nums[(int)mid]>target){ right=mid-1; }else{ left=mid+1; } } if(index==0){ return (int) index; } for(long i=index;i>=0;i--){ if(nums[(int) i]!=target){ return (int) (i+1); } } return -1; } }
相关文章推荐
- 二分查找的Java实现
- Java实现折半查找(二分查找)的递归和非递归算法
- java实现顺序查找和二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- java 二分查找算法实现
- java递归实现二分查找
- java实现二分查找
- 二分查找的java实现
- 算法:查找----二分查找(Java实现)
- 二分查找的java实现
- 算法导论Java实现-二分查找运用(习题2.3-7)
- Java实现折半查找(二分查找)的递归和非递归算法
- 折半查找(二分查找)Java实现
- Java实现折半查找(二分查找)的递归和非递归算法
- JAVA实现二分查找
- 线性查找与二分查找(java实现)
- java 实现二分查找法
- Java实现折半查找(二分查找)的递归和非递归算法
- java 之 二分查找实现
- 【转】Java实现折半查找(二分查找)的递归和非递归算法