日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剑指offer 11. 旋转数组的最小数字(很详细!)

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指offer 11. 旋转数组的最小数字(很详细!) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

劍指offer 11. 旋轉數組的最小數字

  • 題目
  • 解題思路
  • 代碼

題目

解題思路

一開始,我們就能直接想到,數組找最小值,那么不輕輕松松直接遍歷一遍,用一個變量記錄最小值,然后直接返回不就完事了?
但是這樣做真的不優雅!!!,因為題目已經說了是一個旋轉的數組,直接遍歷暴力,那么題目還要說旋轉干嘛呢?
所以這里我們需要具體分析一下可以包含重復元素的數組旋轉過后會是什么情況
旋轉過后基本上是這種圖案:最小值大概位于中間位置(這里偷點懶直接用了力扣官方的圖片,懶得畫圖了😁)

注意到,旋轉數組中的最后一個值x, 在最小值右側的值都小于等于x,在最小值左側的值都大于等于x,因此根據這一條性質,我們可以使用二分查找找出數組中的最小值

我們將在二分查找的每一步中,左邊界為 low,右邊界為high,區間的中點為 pivot,最小值就在該區間內。

我們將中軸元素 numbers[pivot]與右邊界元素 numbers[high] 進行比較,可能會有以下的三種情況:

  • 1.第一種情況是numbers[pivot] < numbers[high] 那么就是這樣的

    說明最小值位于pivot的左邊那么我們可以將右邊界high縮小為pivot所指的地方 即 high = pivot

  • 第二種情況 numbers[pivot] > numbers[high] ,那么就是這樣

    說明numbers[pivot]是最小值左側的元素我們將low更新為 pivot + 1
    即low = povit + 1
    這里說明一下為什么是更新為povit + 1 而上面的情況是更新為povit
    因為numbers[pivot] > numbers[high]時,pivot只可能在最小值左側,pivot+1最大只能是最小值的位置。但是,numbers[pivot] < numbers[high]時,pivot既可能剛好是最小值,也可能在最小值右側,如果剛好是最小值的話,pivot-1就錯過了最小值.

  • 第三種情況是 numbers[pivot] == numbers[high] :
    由于數組中可能存在重復的元素那么可能的情況是這樣的

    由于數組中可能存在重復的元素,我們無法確定pivot是位于最小值的左側還是右側.所以我們不能莽撞的去忽略任何一部分的值.但是我們唯一可以確認的是
    不管high指向的值是不是最小值,我們都有一個替代值就是pivot.
    所以我們可以忽略右端點
    即 : high--
    知道了思路我們就可以寫代碼了

代碼

func minArray(numbers []int) int {low := 0high := len(numbers) - 1for low < high {povit := low + (high - low)/2if numbers[pivot] < numbers[high] {high = pivot}else if numbers[pivot] > numbers[high]{low = pivot + 1}else {high--}}return numbers[low] }

時間復雜度 : O(logn) n為numbers的長度,特殊案例時[1,1,1,1]會退化為O(n)
要遍歷n次
空間復雜度 : O(1) : low,high,pivot變量使用常數大小的額外空間。
這里使用的是go語言寫的,其他語言也差不多啦,解題思路都是一樣的

總結

以上是生活随笔為你收集整理的剑指offer 11. 旋转数组的最小数字(很详细!)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人涩涩 | 亚洲无限码 | 黄色性网站 | 三级在线网址 | 五月天六月婷婷 | 91桃色在线观看 | 深夜福利国产精品 | 撸啊撸av| 欧美在线一级视频 | 黄色观看网站 | 国产成人自拍视频在线 | 日韩国产综合 | 免费黄色成人 | 屁股夹体温计调教play | 亚洲AV第二区国产精品 | 老太婆av | 先锋资源av网| 三浦惠理子aⅴ一二三区 | 日本三级在线 | 亚洲操一操 | 熟女俱乐部一区二区视频在线 | 51成人做爰www免费看网站 | 高清中文字幕av | 天天爽夜夜春 | 国产午夜精品久久久久久久久久 | 午夜剧场免费在线观看 | 少妇视频一区二区三区 | 丰满熟女一区二区三区 | 欧美怡红院视频一区二区三区 | 欧洲中文字幕日韩精品成人 | 日批视频在线 | 免费裸体美女网站 | 四虎国产精品成人免费入口 | 九九热av | av男女| 久久一区国产 | 日韩电影网址 | 久久aaaa片一区二区 | 久久久噜噜噜久久久 | a级片在线观看视频 | 182tv福利视频 | www亚洲成人 | 久久国内视频 | 三级黄在线观看 | 色多多视频在线观看 | 久久久性色精品国产免费观看 | 国产一区二区在线电影 | 国产一区二区三区在线观看视频 | 人日人视频 | 捆绑黑丝美女 | av在线电影网 | 国产精品综合一区二区 | 久久久在线免费观看 | 久久九九久久九九 | 成人性做爰aaa片免费 | 色哟哟视频网站 | 四虎影视成人永久免费观看亚洲欧美 | 92精品| 日本在线黄色 | 成人免费性视频 | 免费黄网在线观看 | 久久久久久久久久久久久女国产乱 | 放荡的美妇在线播放 | 婷婷综合五月天 | 久久亚洲精品小早川怜子 | 超碰在线网站 | 伊人视屏| 欧美日韩电影一区二区三区 | 成人亚洲黄色 | 黄色小视频免费网站 | 日韩中文字幕影院 | 亚洲综合图区 | 欧美又大粗又爽又黄大片视频 | 欧美青草视频 | 精品国产色| 国产a一级| 欧美11p | 国产一区二区精品在线观看 | 成人在线观 | 国产区福利 | 精品日韩欧美 | 樱花视频在线免费观看 | 国产又黄又爽 | 日韩精品免费一区二区三区竹菊 | 日韩图片一区 | 亚洲视频在线看 | 欧美aaa在线观看 | 国产精品宾馆在线精品酒店 | 中文字幕在线视频免费观看 | 亚洲一区二区三区四区五区xx | 在线二区 | 久久黄色av | 成人无码精品1区2区3区免费看 | 一区二区精品国产 | 精品一区二区三区在线免费观看 | 国产91精品久久久 | 极品毛片 | 天天射干 | 91亚洲精品在线 |