題目描述
把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。
輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。
例如陣列為的乙個旋轉,該陣列的最小值為1。
note:給出的所有元素都大於0,若陣列大小為0,請返回0。
# -*- coding:utf-8 -*-
class
solution
:def
minnumberinrotatearray
(self, rotatearray)
:# write code here
iflen
(rotatearray)==0
:return
0 low =
0 mid =
0 high =
len(rotatearray)-1
while low < high:
if rotatearray[low]
< rotatearray[high]
:return rotatearray[low]
mid = low +
(high - low)//2
if rotatearray[low]
< rotatearray[mid]
: low = mid +
1elif rotatearray[mid]
< rotatearray[high]
: high = mid
else
: low +=
1return rotatearray[low]
劍指offer 查詢
查詢包含,順序查詢,二分查詢,雜湊表查詢和二叉排序樹查詢。一.二分查詢 題目 旋轉陣列的最小數字 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。思路 重點說一下二分查詢法。如果是...
劍指offer(查詢)
有乙個迴圈有序陣列a,如,不知道其最小值的位置。那麼如何從這樣的陣列中尋找乙個特定的元素呢?我們可以把迴圈陣列分為兩部分,其中必定有一部分是排好序的,比較元素的值,如果在排序陣列中則直接進行二分查詢即可,如果不在排好序的陣列中,則遞迴的呼叫查詢函式。include using namespace s...
《劍指offer》 排序
一 資料流中的中位數 題目描述 如何得到乙個資料流中的中位數?如果從資料流中讀出奇數個數值,那麼中位數就是所有數值排序之後位於中間的數值。如果從資料流中讀出偶數個數值,那麼中位數就是所有數值排序之後中間兩個數的平均值。我們使用insert 方法讀取資料流,使用getmedian 方法獲取當前讀取資料...