2025 iThome 鐵人賽
分享至
這題一開始看起來像是普通的二分搜尋,但實際上多了一個「旋轉」的變化。關鍵在於每次中間切開後,至少有一邊仍然是有序的。只要能判斷出哪一半是有序的,再判斷 target 是否在那段區間內,就能決定往哪邊縮小範圍。一開始寫的時候容易被條件判斷搞混,不過畫出幾個旋轉後的範例(例如 [4,5,6,7,0,1,2])後,就能更清楚整體邏輯。理解「旋轉後仍部分有序」這個特性後,整體思路就和一般二分搜尋非常相似。
IT邦幫忙