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

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

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

      題目

      (這是一個 交互式問題 )

      給你一個 山脈數組 mountainArr,請你返回能夠使得 mountainArr.get(index) 等于 target 最小 的下標 index 值。

      如果不存在這樣的下標 index,就請返回 -1。

       

      何為山脈數組?如果數組 A 是一個山脈數組的話,那它滿足如下條件:

      首先,A.length >= 3

      其次,在 0 < i < A.length - 1 條件下,存在 i 使得:

      A[0] < A[1] < ... A[i-1] < A[i]
      A[i] > A[i+1] > ... > A[A.length - 1]
       

      你將 不能直接訪問該山脈數組,必須通過 MountainArray 接口來獲取數據:

      MountainArray.get(k) - 會返回數組中索引為k 的元素(下標從 0 開始)
      MountainArray.length() - 會返回該數組的長度
       

      注意:

      對 MountainArray.get 發起超過 100 次調用的提交將被視為錯誤答案。此外,任何試圖規避判題系統的解決方案都將會導致比賽資格被取消。

      為了幫助大家更好地理解交互式問題,我們準備了一個樣例 “答案”:https://leetcode-cn.com/playground/RKhe3ave,請注意這 不是一個正確答案。

       

      示例 1:

      輸入:array = [1,2,3,4,5,3,1], target = 3
      輸出:2
      解釋:3 在數組中出現了兩次,下標分別為 2 和 5,我們返回最小的下標 2。


      示例 2:

      輸入:array = [0,1,2,4,2,1], target = 3
      輸出:-1
      解釋:3 在數組中沒有出現,返回 -1。
       

      提示:

      3 <= mountain_arr.length() <= 10000
      0 <= target <= 10^9
      0 <= mountain_arr.get(index) <= 10^9

       

      代碼

      思路:

      目標數組分為兩部分,前部分升序排列,后部分降序排序。

      1.二分查找找到峰值的位置peek

      2.二分在0-peek中查找target

      3.若前部分未找到,則二分在peek+1-len-1中查找。

      時間復雜度O(logN)三次二分查找;空間復雜度O(1)

      /**
       * // This is MountainArray's API interface.
       * // You should not implement it, or speculate about its implementation
       * interface MountainArray {
       *     public int get(int index) {}
       *     public int length() {}
       * }
       */
       
      class Solution {
          public int findInMountainArray(int target, MountainArray mountainArr) {
              int len = mountainArr.length();
              //找到峰頂
              int l = 0,r = len-1;
              int peek = 0;
              while(l<=r){
                  int m = l+(r-l)/2;  
                  if(m==0){
                      peek = 1;
                      break;
                  }
                  if(m==len-1){
                      peek = len - 2;
                      break;
                  }
      
                  int top = mountainArr.get(m);
                  if(top>mountainArr.get(m-1)&&top>mountainArr.get(m+1)){
                      peek = m;
                      break;
                  }else if(top>mountainArr.get(m-1)){
                      l = m+1;
                  }else{
                      r = m-1;
                  }
              }
              int index = binarySearch(target,mountainArr,0,peek,true);
              if(index!=-1)
                  return index;
              else
                  return binarySearch(target,mountainArr,peek+1,mountainArr.length()-1,false);
          }
      
          //二分查找  f標記是升序排列還是降序排列
          public int binarySearch(int target,MountainArray mountainArr,int l,int r,boolean f){
              while(l<=r){
                  int m = l+(r-l)/2;
                  int x = mountainArr.get(m);
                  if(x==target){
                      return m;
                  }else if(x>target){
                      if(f)
                          r = m-1;
                      else
                          l = m+1;
                  }else {
                      if(f)
                          l = m + 1;
                      else
                          r = m-1;
                  }
              }
              return -1;
          }
      }

       

      posted on 2020-04-29 17:43  何大土  閱讀(212)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 精品人妻中文字幕在线| 久久超碰色中文字幕超清| 国产精品人成视频免费国产| 精品综合久久久久久97| 在线综合亚洲欧洲综合网站| 国产精品推荐手机在线| 无码激情亚洲一区| 成人欧美一区在线视频| 人妻少妇偷人一区二区| 亚洲精品一区国产精品| 熟女人妻视频| 国产精品熟女乱色一区二区 | 亚洲色最新高清AV网站| 一区二区三区在线 | 欧洲| 亚洲中文字幕乱码电影| 国产中文字幕精品免费| 成人无码区在线观看| 亚洲精品国产自在现线最新| 国产午夜福利视频一区二区| 亚洲欧洲精品国产二码| 日韩中文字幕人妻精品| 激情文学一区二区国产区| 亚洲AV永久天堂在线观看| 国产午夜福利在线视频| 夜夜爽77777妓女免费看| 国产精品免费观在线| 成人啪精品视频网站午夜 | 亚洲国产超清无码专区| 偷拍激情视频一区二区三区| 给我中国免费播放片在线| 精品国产一区av天美传媒| 野花香视频在线观看免费高清版| 亚洲乱码中文字幕小综合| 国产三级精品福利久久| 久久天天躁夜夜躁狠狠85| gogogo在线播放中国| 99久久er热在这里只有精品99| 色99久久久久高潮综合影院 | 亚洲午夜精品久久久久久浪潮| 亚洲乱码中文字幕综合| 日本高清在线观看WWW色|