假設有乙個排序的
按未知的旋轉軸旋轉的
陣列(比如,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...