在轉動過的有序陣列中尋找目標值(牛客網)

2021-10-09 13:15:23 字數 407 閱讀 1167

原題來自牛客網:鏈結

給出乙個轉動過的有序陣列,你事先不知道該陣列轉動了多少

(例如,0 1 2 4 5 6 7可能變為4 5 6 7 0 1 2).

在陣列中搜尋給出的目標值,如果能在陣列中找到,返回它的索引,否則返回-1。

假設陣列中不存在重複項。

有序陣列中查詢一般使用二分查詢,但是這道題進行了轉動。

以下思路來自牛客網使用者「擱淺的魚兒」:

重點在於左右邊界的確定,將整個旋轉陣列分為兩部分一定有一部分有序,那麼通過判斷左邊還是右邊有序分為兩種情況,然後再判斷向左走還是向右走。

class

solution

//右邊有序

else

}return-1

;}};

演算法之尋找二維矩陣中的目標值

編寫乙個高效的演算法來搜尋 m x n 矩陣 matrix 中的乙個目標值 target。該矩陣具有以下特性 每行的元素從左到右公升序排列。每列的元素從上到下公升序排列。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17...

常考資料結構與演算法 在轉動過的有序陣列中尋找目標值

給出乙個轉動過的有序陣列,你事先不知道該陣列轉動了多少 例如,0 1 2 4 5 6 7可能變為4 5 6 7 0 1 2 在陣列中搜尋給出的目標值,如果能在陣列中找到,返回它的索引,否則返回 1。假設陣列中不存在重複項。思路 首先判斷排序陣列是否翻轉,如果沒有翻轉,直接使用二分查詢,如果翻轉,先使...

js查詢陣列中與目標值最相近的數值

var arr 500,400,320,200,1,10,8,100,130,120,135,140,180,190,170,1,2,4 原有陣列 var targetnum 125 目標數值 method author gedesiwen param arr 需要查詢的陣列 param num 目...