zoukankan      html  css  js  c++  java
  • [leetcode-34-Search for a Range]

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

    思路:

    二分查找。。写的好啰嗦。待优化。

    vector<int> searchRange(vector<int>& nums, int target)
         {
             int len = nums.size(),low=0,high = len-1,mid = low +(high-low)/2;
             vector<int>ret;
             while (low <= high)
             {
                 mid = low + (high - low) / 2;
                 if (nums[mid] == target)
                 {
                     while (mid>=0 && nums[mid] == target)
                     {
                         mid--;
                     }
                     ret.push_back(mid + 1);
                     mid++;
                     while (mid<len && nums[mid] == target)
                     {
                         mid++;
                     }
                     ret.push_back(mid - 1);
                     break;
                 }
                 else if (nums[mid]<target)
                 {
                     low = mid + 1;
                 }
                 else high = mid - 1;
             }
             if (ret.size()==0)
             {
                 ret.push_back(-1), ret.push_back(-1);
             }
             return ret;
         }
  • 相关阅读:
    websocket1
    webpack 入门三
    weboack 入门二
    webpack 入门一
    输入一个url发生了什么
    http详解
    JavaScript对象详解
    javaScript垃圾回收机制
    js数据类型与隐式类型转换
    iOS证书申请、AppStore上架流程
  • 原文地址:https://www.cnblogs.com/hellowooorld/p/6941477.html
Copyright © 2011-2022 走看看