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(C++ Java Python)

题目: 题目翻译: 分析: C++实现: Java实现: Python实现: 感谢阅读,欢迎评论!...
  • dragon_dream
  • dragon_dream
  • 2014年04月03日 20:53
  • 3383

LeetCode 34 Search for a Range (C,C++,Java,Python)

Problem: Given a sorted array of integers, find the starting and ending position of a given tar...
  • runningtortoises
  • runningtortoises
  • 2015年05月14日 21:28
  • 1175

leetcode 34 -- Search for a Range

Search for a Range 题目: Given a sorted array of integers, find the starting and ending position...
  • wwh578867817
  • wwh578867817
  • 2015年06月23日 00:36
  • 1200

[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
  • 5701

(Java)LeetCode-34. Search for a Range

Given a sorted array of integers, find the starting and ending position of a given target value. ...
  • u012848330
  • u012848330
  • 2016年08月05日 22:01
  • 111

Search for a Range -- LeetCode

原题链接: http://oj.leetcode.com/problems/search-for-a-range/  这道题是二分查找Search Insert Position的变体,思路并不复杂...
  • linhuanmars
  • linhuanmars
  • 2014年03月06日 03:48
  • 16953

LeetCode34: Search for a Range

Given a sorted array of integers, find the starting and ending position of a given target value. You...
  • geekmanong
  • geekmanong
  • 2016年01月13日 15:57
  • 1090

LeetCode解题报告--Search for a Range

题目: Given a sorted array of integers, find the starting and ending position of a given target valu...
  • github_27609763
  • github_27609763
  • 2015年12月04日 13:32
  • 1573

LeetCode --- 34. Search for a Range

题目链接:Search for a Range Given a sorted array of integers, find the starting and ending position of ...
  • makuiyu
  • makuiyu
  • 2015年02月04日 23:18
  • 616

【leetcode】34. Search for a Range

二分查找,查找有序可重复数列的最左和最右出现的数的下标。 可以参考,通过二分的写法理解循环不变式:http://www.cnblogs.com/wuyuegb2312/archive/2013/05...
  • zone_programming
  • zone_programming
  • 2015年10月07日 14:22
  • 150
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode 34. Search for a Range
举报原因:
原因补充:

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