lintcode 搜尋旋轉排序陣列 62

2021-07-05 06:24:39 字數 830 閱讀 6717

假設有乙個排序的

按未知的旋轉軸旋轉的

陣列(比如,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

解題思路:旋轉陣列實際上是兩個遞增陣列的組成,且第乙個陣列中的任意乙個值都大於第二個陣列的最大值,還是用二分查詢的思想。

class solution {

public:

int search(vector&nums, int target) {

if(nums.empty())

return -1;

int begin=0;

int end=nums.size()-1;

while(begin<=end){

int mid=begin+(end-begin)/2;

if(nums[mid]==target)

return mid;

if(nums[mid]>nums[begin]){ //此時begin和mid肯定處在同乙個遞增陣列上

//那麼就直接運用原始的二分查詢

if(nums[begin]<=target&&target

LintCode 搜尋旋轉排序陣列

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

lintcode刷題 搜尋旋轉排序陣列

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

lintcode 中等題 搜尋旋轉排序陣列II

題目 搜尋旋轉排序陣列 ii 跟進 搜尋旋轉排序陣列 假如有重複元素又將如何?是否會影響執行時間複雜度?如何影響?為何會影響?寫出乙個函式判斷給定的目標值是否出現在陣列中。樣例給出 3,4,4,5,7,0,1,2 和target 4,返回 true 解題 直接法class solution para...