LintCode 搜尋旋轉排列陣列

2021-07-27 18:45:14 字數 627 閱讀 1790

題目

假設有乙個排序的按未知的旋轉軸旋轉的陣列(比如,0 1 2 4 5 6 7 可能成為4 5 6 7 0 1 2)。給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回-1。

你可以假設陣列中不存在重複的元素。

樣例

給出[4, 5, 1, 2, 3]和target=1,返回 2

給出[4, 5, 1, 2, 3]和target=0,返回 -1

思路

首先用二分法確定mid的位置,判斷a[mid]與a[r], a[p]的關係,找出mid的左邊或者右邊為順序排列的,如果a[mid] > a[r]則mid左邊為順序排列,else則mid右邊順序排列,再判斷target從屬於哪一邊,這樣迴圈的查詢。

**

int search(vector

&a, int target)

else

if(a[q] > a[r])

else

}else

else }}

return -1;

}

LintCode 搜尋旋轉排序陣列

假設有乙個排序的 按未知的旋轉軸旋轉的 陣列 比如,0 1 2 4 5 6 7 可能成為 4 5 6 7 0 1 2 給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回 1。你可以假設陣列中不存在重複的元素。您在真實的面試中是否遇到過這個題?yes 樣例給出 4,5,1,2...

lintcode 搜尋旋轉排序陣列 62

假設有乙個排序的 按未知的旋轉軸旋轉的 陣列 比如,0 1 2 4 5 6 7可能成為 4 5 6 7 0 1 2 給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回 1。你可以假設陣列中不存在重複的元素。樣例 給出 4,5,1,2,3 和target 1,返回 2 給出 ...

lintcode刷題 搜尋旋轉排序陣列

原題如下 搜尋旋轉排序陣列 假設有乙個排序的 按未知的旋轉軸旋轉的 陣列 比如,0 1 2 4 5 6 7 可能成為 4 5 6 7 0 1 2 給定乙個目標值進行搜尋,如果在陣列中找到目標值返回陣列中的索引位置,否則返回 1。你可以假設陣列中不存在重複的元素。您在真實的面試中是否遇到過這個題?ye...