Search for a Range
来源:互联网 发布:config.inc.php下载 编辑:程序博客网 时间:2024/05/18 23:12
题目地址:https://leetcode.com/problems/search-for-a-range/description/
Given an array of integers sorted in ascending order, 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]
.
题目已经给出了数组有序的条件,很显然就是要用二分法。
import java.util.Arrays;public class SearchforRange { public static int[] searchRange(int[] nums, int target) { if (nums == null) return null; if (nums.length == 0) return new int[]{-1, -1}; int left = 0; int right = nums.length - 1; int mid = left + (right - left) / 2; boolean flag = false; // Binary search. while (left <= right) { if (nums[mid] < target) { left = mid + 1; mid = left + (right - left) / 2; } else if (nums[mid] == target) { flag = true; break; } else { right = mid -1; mid = left + (right - left) / 2; } } // expand the range to left and right from mid if (flag) { left = mid; right = mid; while (left - 1 >= 0) { if (nums[left - 1] == target) { left = left - 1; } else { break; } } while (right + 1 <= nums.length - 1) { if (nums[right + 1] == target) { right = right + 1; } else { break; } } return new int[] {left, right}; } return new int[] {-1, -1}; } public static void main(String[] args) { int[] arr = new int[] {8}; System.out.println(Arrays.toString(searchRange(arr, 8))); return; }}
阅读全文
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
- 角点检测方法
- Expecting "jsp:param" standard action with "name" and "value" attributes解决方案
- 关于KMP算法(模块匹配)的实现
- MySQL性能分析及explain的使用
- 0基础UI设计的人如何快速入门
- Search for a Range
- Torch
- duilib将xml和图片合并到exe资源中或者dll中
- DES加密模式详解(zz)
- winform属性/事件/退出程序/ MessageBox.Show/TextBox和Label/Lbel实现跑马灯和闹钟
- 一个关于android蓝牙通讯的问题
- 微信客服消息时间限制
- HttpContext.Current.Request页面间传值,获取标签的值value
- 年末房贷又收紧,某男子通过审核半年之后贷款还未发放