博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]--34. Search for a Range
阅读量:6910 次
发布时间:2019-06-27

本文共 1751 字,大约阅读时间需要 5 分钟。

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 int[] searchRange(int[] nums, int target) {        int low = 0, high = nums.length - 1, temp = -1;        int result[] = new int[2];        while (low <= high) {            int mid = (low + high) / 2;            if (nums[mid] == target) {                temp = mid;                break;            }            if (nums[mid] > target)                high = mid - 1;            if (nums[mid] < target)                low = mid + 1;        }        if (temp == -1) {            Arrays.fill(result, -1);            return result;        }        int tmp = temp;        while (tmp > 0 && target == nums[tmp - 1])            tmp--;        while (temp < nums.length-1 && target == nums[temp + 1])            temp++;        result[0] = tmp;        result[1] = temp;        return result;    }

上discuss看了简单一些的方法吧,分享下。

public int[] searchRange(int[] nums, int target) {        int left = 0;        int right = nums.length - 1;        while (left <= right) {            int mid = left + (right - left) / 2;            if (nums[mid] == target) {                if (nums[left] == target && nums[right] == target)                    return new int[] { left, right };                else if (nums[left] != target)                    left++;                else                    right--;            } else if (nums[mid] < target)                left = mid + 1;            else                right = mid - 1;        }        return new int[] { -1, -1 };    }

转载地址:http://qhwcl.baihongyu.com/

你可能感兴趣的文章
gitlab web hooks 应用
查看>>
STM32的停机模式与唤醒
查看>>
安全运维之端口安全
查看>>
十月百度,阿里巴巴,迅雷搜狗最新面试七十题(更新至10.17)
查看>>
java程序c:forEach相关实际应用
查看>>
PS命令
查看>>
IP地址规划
查看>>
在ssh项目中导出excel
查看>>
struts-上传
查看>>
javascript的for in
查看>>
MongoDB通过Save修改数据
查看>>
大容量导入和导出数据 -- 介绍
查看>>
我的友情链接
查看>>
第三次作业
查看>>
基于MariaDB-10 半同步复制数据的配置解析
查看>>
关于虚拟机安装linux的发生的网络不通的问题。及解决方案
查看>>
Memcache的简单笔记
查看>>
忘记密码
查看>>
CentOS虚拟机静态IP配置过程及问题分析
查看>>
第一天 css学习
查看>>