<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      9 找到目標出現的區間范圍(Search for a range)

      1 題目

      ??找到目標出現的區間范圍(Search for a range)

      lintcode:題號——61,難度——medium

      2 描述

      ??給定一個包含 n 個整數的排序數組,找出給定目標值 target 的起始和結束位置。如果目標值不在數組中,則返回[-1, -1]。

      ??樣例1:

      輸入:數組 = [],target = 9
      輸出:[-1,-1]
      解釋:

      9不在數組中。

      ??樣例2:

      輸入:數組 = [5, 7, 7, 8, 8, 10],target = 8
      輸出:[3,4]
      解釋:

      數組的[3,4]子區間值都為8。

      3 思路

      ??在已排序的數組中,尋找目標出現的范圍,找到目標出現的初始和最后位置[1],它們中間的區間即是目標區間,二分搜索套模版[2],跑兩次就能得到結果。

      1. 找到目標出現的初始位置;
      2. 找到目標出現的最后位置;
      3. 得到目標區間。

      3.1 圖解

      輸入:數組 = [5, 6, 7, 9, 9, 9, 10, 12],target = 9
      輸出:[3,5]
      解釋:

      數組的[3,5]子區間值都為8。

      graph TD X[原數組 '5, 6, 7, 9, 9, 9, 10, 12'] -- 尋找初始位置 --> A A['5, 6, 7, 9, 9, 9, 10, 12'] -- 中間位置元素'9',等于目標元素'9' -->A1 A1 -- 拋掉 --> B[\拋掉'5'\] A1['5, 6, 7, 9'] -- 中間位置元素'6',小于目標元素'9' --> A2 A -- end = mid --> C[/拋掉'9, 9, 10, 12'/] A2['6, 7, 9'] -- 中間位置元素'7',小于目標元素'9' --> A3 A3['7, 9'] -- 先比頭,再比尾部 --> A4[元素9初始下標3] X -- 尋找最后位置 --> D['5, 6, 7, 9, 9, 9, 10, 12'] D -- 略,同左邊 --> D1[元素9最后位置5] A4 --> Y[區間3,5] D1 --> Y

      3.2 時間復雜度

      ??在n規模的問題上使用兩次二分法,時間復雜度為O(2 * log n),依然是O(log n)。

      3.3 空間復雜度

      ??算法的空間復雜度為O(1)。

      4 源碼

      ??C++版本:

      /**
      * @param A: 已排序數組
      * @param target: 目標值
      * @return: 目標出現的區間范圍
      */
      vector<int> searchRange(vector<int> &A, int target) {
          // write your code here
          vector<int> result;
          if (A.empty())
          {
              result.push_back(-1);
              result.push_back(-1);
              return result;
          }
      
          int startPos = -1;
          int endPos = -1;
          startPos = findFirstPos(A, target);
          endPos = findLastPos(A, target);
          result.push_back(startPos);
          result.push_back(endPos);
      
          return result;
      }
      
      int findFirstPos(vector<int> & A, int target)
      {
          int start = 0;
          int end = A.size() - 1;
          int mid = 0;
          while (start + 1 < end)
          {
              mid = start + (end - start) / 2;
              if (A.at(mid) >= target)
              {
                  end = mid;
              }
              if (A.at(mid) < target)
              {
                  start = mid;
              }
          }
      
          if (A.at(start) == target)
          {
              return start;
          }
          if (A.at(end) == target)
          {
              return end;
          }
      
          return -1;
      }
      
      int findLastPos(vector<int> & A, int target)
      {
          int start = 0;
          int end = A.size() - 1;
          int mid = 0;
          while (start + 1 < end)
          {
              mid = start + (end - start) / 2;
              if (A.at(mid) <= target)
              {
                  start = mid;
              }
              if (A.at(mid) > target)
              {
                  end = mid;
              }
          }
      
          if (A.at(end) == target)
          {
              return end;
          }
          if (A.at(start) == target)
          {
              return start;
          }
      
          return -1;
      }
      

      1. 尋找目標出現的初始or最后位置:https://blog.csdn.net/SeeDoubleU/article/details/118346371 ??

      2. 經典二分搜索:https://blog.csdn.net/SeeDoubleU/article/details/118271548 ??

      posted @ 2021-07-20 00:31  seedoubleu  閱讀(84)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产激情一区二区三区四区| 99精品久久久中文字幕| 在线中文一区字幕对白| 四虎永久在线精品无码视频| 国内永久福利在线视频图片| 国产伦精品一区二区三区| 伊人激情一区二区三区av| 99福利一区二区视频| 老熟女高潮一区二区三区| 一本大道久久香蕉成人网| 99久久国产综合精品女图图等你 | 午夜成年男人免费网站| 久久综合97丁香色香蕉| 日本肥老妇色xxxxx日本老妇| 国产精品中文字幕第一区| 影音先锋2020色资源网| 成人啪精品视频网站午夜 | 欧美大胆老熟妇乱子伦视频| 四虎在线播放亚洲成人| 久久99日韩国产精品久久99| 毛片无码一区二区三区| 国产精品中文av专线| 婷婷色综合视频在线观看| 免费一级黄色好看的国产| 日韩精品一卡二卡在线观看| 久久精品国产一区二区蜜芽| 欧美日韩在线第一页免费观看| 在厨房拨开内裤进入在线视频| 中文字幕有码无码人妻在线| 丁香五月亚洲综合在线国内自拍| 日本一卡二卡不卡视频查询| 亚洲女同精品久久女同| 久久夜色噜噜噜亚洲av| 国产旡码高清一区二区三区| 国产AV无码专区亚洲AWWW| 国产91精品一区二区蜜臀| 中文字幕无码av激情不卡 | 男人和女人做爽爽视频| 亚洲欧洲av一区二区久久| 噜噜噜噜私人影院| 图木舒克市|