LintCode 尋找旋轉排序陣列中的最小值 II
題目
假設一個旋轉排序的陣列其起始位置是未知的(比如0 1 2 4 5 6 7 可能變成是4 5 6 7 0 1 2)。
你需要找到其中最小的元素。
陣列中可能存在重複的元素。
樣例
給出[4,4,5,6,7,0,1,2] 返回 0
分析
這次可以出現重複元素,很簡單,只要判斷的時候加等於的判斷即可,如果mid等於end,那麼end--最小值肯定還在其中。
程式碼
public class Solution {
/**
* @param num: a rotated sorted array
* @return: the minimum number in the array
*/
public int findMin(int[] nums) {
// write your code here
if (nums == null || nums.length == 0) {
return -1;
}
int start = 0, end = nums.length - 1;
while (start + 1 < end) {
int mid = start + (end - start) / 2;
if(nums[mid]>nums[start] && nums[mid] < nums[end])
return nums[0];
else if (nums[mid] == nums[end]) {
// if mid equals to end, that means it's fine to remove end
// the smallest element won't be removed
end--;
} else if (nums[mid] < nums[end]) {
end = mid;
// of course you can merge == & <
} else {
start = mid;
// or start = mid + 1
}
}
if (nums[start] <= nums[end]) {
return nums[start];
}
return nums[end];
}
}
相關文章
- 153. 尋找旋轉排序陣列中的最小值排序陣列
- 153. 尋找旋轉排序陣列中的最小值(中)排序陣列
- LeetCode-153-尋找旋轉排序陣列中的最小值LeetCode排序陣列
- 【LeetCode】153. 尋找旋轉排序陣列中的最小值LeetCode排序陣列
- LeetCode 81——搜尋旋轉排序陣列 IILeetCode排序陣列
- 力扣-81. 搜尋旋轉排序陣列 II力扣排序陣列
- LeetCodeHot100 二分查詢 35. 搜尋插入位置 74. 搜尋二維矩陣 34. 在排序陣列中查詢元素的第一個和最後一個位置 33. 搜尋旋轉排序陣列 153. 尋找旋轉排序陣列中的最小值LeetCode矩陣排序陣列
- LeetCode 33——搜尋旋轉排序陣列LeetCode排序陣列
- 力扣·33. 搜尋旋轉排序陣列力扣排序陣列
- Lintcode 恢復旋轉陣列陣列
- 【劍指offer】旋轉陣列的最小值陣列
- 尋找陣列中的最大值和最小值O(1.5*N)陣列
- leetCode33搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode33 搜尋旋轉排序陣列LeetCode排序陣列
- LeetCode#33搜尋旋轉排序陣列LeetCode排序陣列
- 【LeetCode(Java) - 33】搜尋旋轉排序陣列LeetCodeJava排序陣列
- LeetCode33. 搜尋旋轉排序陣列LeetCode排序陣列
- 數字之魅:尋找陣列中的最大值和最小值陣列
- leetcode, LC68:旋轉排序陣列搜尋LeetCode排序陣列
- 【Java】尋找陣列中“主要元素”Java陣列
- 每天一題(2)--旋轉陣列求最小值陣列
- 演算法學習-查詢旋轉陣列的最小值演算法陣列
- 旋轉陣列中的最小元素陣列
- 尋找陣列中第K大的元素陣列
- 尋找陣列的中心索引陣列索引
- 尋找兩個有序陣列的中位數陣列
- 尋找兩個正序陣列中的中位數陣列
- 【.Net】從字串陣列中尋找數字的元素字串陣列
- 演算法學習記錄七(C++)--->二分法找有序旋轉陣列最小值演算法C++陣列
- 找陣列的波谷;及巧妙排序的分析陣列排序
- LeetCode 熱題 HOT 100 Java題解——33. 搜尋旋轉排序陣列LeetCodeJava排序陣列
- 4. 尋找兩個正序陣列的中位數陣列
- (七)一個尋找陣列中眾數的演算法陣列演算法
- 在陣列中尋找和為指定值的兩個數陣列
- [JAVA]陣列旋轉輸出Java陣列
- 922. 按奇偶排序陣列 II (java)排序陣列Java
- 演算法尋找陣列中的第二大數演算法陣列
- 33、搜尋旋轉排序陣列 | 演算法(leetode,附思維導圖 + 全部解法)300題排序陣列演算法