LeetCode 34. Search for a Range

原创 2016年05月31日 11:53:19

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].



1、有序数组,第一时间想到的就是二分法。

vector<int> searchRange(vector<int>& nums, int target)
    {
        vector<int> res;
        int low = -1;
        int high = -1;
        int start = 0;
        int end = nums.size()-1;
        while(start <= end)
        {
            int mid = (start + end)/2;
            if(nums[mid] > target)
            {
                end = mid - 1;
            }
            else if(nums[mid] < target)
            {
                start = mid + 1;
            }
            else
            {
                low = high = mid;
                while((high + 1) <nums.size() && nums[high + 1] == target)
                    high++;
                while((low -1) >=0 && nums[low - 1] == target)
                    low--;
                res.push_back(low);
                res.push_back(high);
                return res;
            }
        }
        res.push_back(low);
        res.push_back(high);
        return res;
    }

版权声明:本文为博主原创文章,未经博主允许不得转载。

【LeetCode】34. Search for a Range

题目描述Given an array of integers sorted in ascending order, find the starting and ending position of a...

leetcode34_Search for a Range

一.问题描述 Given a sorted array of integers, find the starting and ending position of a given targe...

LeetCode 34 Search For A Range 二叉查找相关(二)

题目: https://leetcode.com/problems/search-for-a-range/ Given a sorted array of integers, find the s...

leetcode:34. Search for a Range

Given an array of integers sorted in ascending order, find the starting and ending position of a giv...
  • Earl211
  • Earl211
  • 2017年03月15日 13:54
  • 198

LeetCode34——Search for a Range

LeetCode34——Search for a Range 题意: 在有序序列中找到重复出现的数字出现的范围,返回一个二元组代表范围的闭区间,如果找不到target则返回[-1,-1] ...

【LeetCode-34】Search for a Range

这道题属于二分查找的运用,leetcode很多都是把二分查找稍微改变一下就行,不多说了,上代码了 public class SearchforaRange { int[] result = n...

[LeetCode34]Search for a Range

Given a sorted array of integers, find the starting and ending position of a given target value. Yo...
  • sbitswc
  • sbitswc
  • 2014年06月16日 01:31
  • 5651

leetcode解题之34. Search for a Range java 版(数字在排序数组中出现的次数)

leetcode解题之34. Search for a Range java 版(数字在排序数组中出现的次数)

LeetCode 34 Search for a Range(搜索范围)

翻译给定一个整型已排序数组,找到一个给定值在其中的起点与终点。你的算法复杂度必须低于O(logn)。如果目标在数组中不会被发现,返回[-1, -1]。例如,给定[5, 7, 7, 8, 8, 10],...
  • NoMasp
  • NoMasp
  • 2015年11月28日 21:08
  • 1838

leetcode-34 Search for a Range

这破题,把我弄的心烦意乱,就是三次折半,不过后两次有些特殊 class Solution { public: vector searchRange(int A[], int n, int t...
  • sole_cc
  • sole_cc
  • 2015年04月14日 15:22
  • 321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode 34. Search for a Range
举报原因:
原因补充:

(最多只允许输入30个字)