Search for a Range
来源:互联网 发布:五十知天命六大而耳顺 编辑:程序博客网 时间:2024/06/14 13:25
Given a sorted array of integers, find the starting and ending position of a given target value.
Your algorithm's runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
For example,
Given [5, 7, 7, 8, 8, 10]
and target value 8,
return [3, 4]
public class Solution { public int[] searchRange(int[] A, int target) { int []res={-1,-1}; if(A.length<=0) return res; res[0]=findLeft(A,target); res[1]=findRight(A,target); return res; } public int findLeft(int []A,int target){ int l=0; int r=A.length-1; while(l<=r){ int mid=(l+r)/2; if(A[mid]>target){ r=mid-1; } else if(A[mid]<target){ l=mid+1; } else{ if(mid>0 && A[mid]==A[mid-1]){ r=mid-1; } else return mid; } } return -1; } public int findRight(int []A,int target){ int l=0; int r=A.length-1; while(l<=r){ int mid=(l+r)/2; if(A[mid]>target){ r=mid-1; } else if(A[mid]<target){ l=mid+1; } else{ if(mid<A.length-1 && A[mid]==A[mid+1]){ l=mid+1; } else return mid; } } return -1; }}思路:二分查找
0 0
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range !!!
- Search for a Range
- Search for a Range
- Search For A Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- Search for a Range
- POJ-1861 Network
- struts2的action里定义的serialVersionUID是干什么用的啊?
- 细说sybase日志-
- ExecutorThreadHandler 消息处理器
- springMvc+页面静态化+tomcat+nginx
- Search for a Range
- iOS中关于URL字符串的处理
- oracle数据库导入导出命令!
- vs2010快捷键大全
- UVA 11971 - Polygon(概率+几何概型)
- Google面试题 数组中第K小的数字
- malformed or corrupted AST file:"Unable to load module
- LeetCode-Maximal Rectangle
- Hadoop源码编译,hadoop-2.4.1+Lubuntu(Ubuntu)