LeetCode 81 搜尋旋轉排序陣列 II

2021-10-02 16:01:03 字數 1032 閱讀 6173

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回true,否則返回false。(可有重複元素

輸入: nums = [2,5,6,0,0,1,2], target = 0

輸出: true

整體思路還是和33題一樣,只是這裡需要單獨處理下「重複元素」。我的實現。

相似題目:[leetcode] 33、搜尋旋轉排序陣列、[leetcode] 153、尋找旋轉排序陣列中的最小值、[leetcode] 154、尋找旋轉排序陣列中的最小值 ii。

class

solution

int left =0;

int right = len -1;

while

(left < right)

if(nums[mid]

<= nums[right]

) 3

// 使用上取整的中間數,必須在上面的 mid 表示式的括號裡 + 1

// 重要:把比較好寫的判斷(如 target 落在有序區間的那部分)放在 if 的開頭考慮,把剩下的情況放在 else 裡面。(即 先寫好寫的條件)

if(nums[mid]

<= target && target <= nums[right]

)else

}else

else}}

// 有可能區間內不存在目標元素,因此還需做一次判斷

if(nums[left]

== target)

return

false;}

bool

findnum

(vector<

int>

& nums,

int left,

int right,

int target)

return

false;}

};

LeetCode81 搜尋旋轉排序陣列 II

二分查詢,但是下面的 在測試用例 3,1 1中出錯。package 牛客刷題.leetcode.查詢.search in rotated sorted array ii created by administrator on 2018 6 28 0028.public class solution ...

LeetCode 81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回true,否則返回false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0輸出 t...

leetcode81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0 輸...