1. 程式人生 > >【兩次過】Lintcode 63. 搜尋旋轉排序陣列 II

【兩次過】Lintcode 63. 搜尋旋轉排序陣列 II

跟進“搜尋旋轉排序陣列”,假如有重複元素又將如何?

是否會影響執行時間複雜度?

如何影響?

為何會影響?

寫出一個函式判斷給定的目標值是否出現在陣列中。

樣例

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


解題思路:

只需要舉出能夠最壞情況的資料是 [1,1,1,1... 1] 裡有一個0即可。在這種情況下是無法使用二分法的,複雜度是O(n) ,因此寫個for迴圈最壞也是O(n),那就寫個for迴圈就好了

public class Solution {
    /**
     * @param A: an integer ratated sorted array and duplicates are allowed
     * @param target: An integer
     * @return: a boolean 
     */
    public boolean search(int[] A, int target) {
        // write your code here
        for (int i = 0; i < A.length; i ++) 
            if (A[i] == target) 
                return true;
            
        return false;
    }
}