34. Search for a Range
2016-07-27 16:22
435 查看
<p style="margin-top: 0px; margin-bottom: 10px; box-sizing: border-box; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">Given a sorted array of integers, find the starting and ending position of a given target value.</p><p style="margin-top: 0px; margin-bottom: 10px; box-sizing: border-box; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">Your algorithm's runtime complexity must be in the order of <span style="box-sizing: border-box;">O</span>(log <span style="box-sizing: border-box;">n</span>).</p><p style="margin-top: 0px; margin-bottom: 10px; box-sizing: border-box; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">If the target is not found in the array, return <code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-radius: 4px; background-color: rgb(249, 242, 244);">[-1, -1]</code>.</p><p style="margin-top: 0px; margin-bottom: 10px; box-sizing: border-box; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">For example,<br style="box-sizing: border-box;" />Given <code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-radius: 4px; background-color: rgb(249, 242, 244);">[5, 7, 7, 8, 8, 10]</code> and target value 8,<br style="box-sizing: border-box;" />return <code style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-radius: 4px; background-color: rgb(249, 242, 244);">[3, 4]</code>.</p>
<p> </p><p>public class Solution {</p> public int[] searchRange(int[] A, int target) { int start = Solution.firstsearch(A, target); if (start == A.length || A[start] != target) { return new int[]{-1, -1}; } return new int[]{start, Solution.firstsearch(A, target + 1) - 1}; } public static int firstsearch(int []s,int target){ int low=0; int high=s.length-1; while(low<=high){ int mid=(low+high)/2; if(s[mid]<target){ low=mid+1; } else{ high=mid; } } return low; 目标值的最小序数是low } }
public class Solution {
public int[] searchRange(int[] nums, int target) {
int[] ret= {-1, -1};
int i=0; int j=nums.length-1;
int m;
while (i<j) {
m=i+((j-i-1)>>1);
if(nums[m] < target) {
i=m+1;
} else {
j=m; //j是找到的目标值的最前的位置
}
}
if(nums[j]==target) {
ret[0] = j; //如果有j==target 那就是目标值的第一个 如果不是那就没有目标值
i=j; j=nums.length-1;
while (i<j) {
m=i+((j-i+1)>>1);
if(nums[m] > target) {
j=m-1;
} else {
i=m;
}
}
ret[1] = i;
}
return ret;
}
}
没写完。。
相关文章推荐
- linux 题目 (三)
- ALAsset/PHAsset 中的图片和视频文件
- 备受SQL青睐的“1”
- Java面向对象
- 线程同步,锁的相关问题
- HDU 2084 数塔(动态规划DP)
- 用JS实现关闭当前窗口【兼容谷歌浏览器】
- JSP的out对象
- Hadopp 入门 基本概念(一)
- 16进制颜色值
- tjut 4614
- singleTop和singleTask
- MySql的触发器
- 栈2--链栈
- 整理:STL sort排序算法详细介绍
- (入门整理学习一)Asp.net core
- vb.net中字符串操作函数(转)
- iOS /* */多个嵌套解决
- GitHub上那些值得一试的JAVA开源库
- CRM行业的特独魅力在哪?