Lintcode63 Search in Rotated Sorted Array II solution 題解

【題目描述】

Follow up for Search in Rotated Sorted Array:What if duplicates are allowed?Would this affect the run-time complexity? How and why?Write a function to determine if a given target is in the array.

跟進“搜索旋轉排序數組”,假如有重復元素又將如何?是否會影響運行時間復雜度?如何影響?為何會影響?寫出一個函數判斷給定的目標值是否出現在數組中。

【題目鏈接】

www.lintcode.com/en/problem/search-in-rotated-sorted-array-ii/

【題目解析】

和這題的第一版本類似,只是可能出現重復數字,而有了重復數字會使問題變得非常復雜。

例如對于數組 1 2 2 2 2 2 3,對第1個2進行翻轉后,會得到2 2 2 2 3 1 2,這個數組首尾下標為0和6,得到中間位置的下標為3,于是首尾和中間位置的元素都相同,我們無法判斷索要找的數字是在前半段還是在后半段,這種情況下,只能夠從頭開始以O(n)時間進行一次搜索。

如果不是以上的情況,還是可以按照第一版本的思路進行二分查找。

【參考答案】

www.jiuzhang.com/solutions/search-in-rotated-sorted-array-ii/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容