1. 程式人生 > >LintCode : 搜尋旋轉排序陣列

LintCode : 搜尋旋轉排序陣列

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

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

方案一:遍歷所有元素

沒有什麼技術含量,就是遍歷陣列的所有元素, 時間複雜度O(n)。


class Solution {
    /** 
     * param A : an integer ratated sorted array
     * param target :  an integer to be searched
     * return : an integer
     */
public: int search(vector<int> &A, int target) { // write your code here if (A.size() == 0) return -1; for (int i=0; i<A.size(); i++){ if (A[i] == target) return i; } return -1; } };

方案二:二分法