[LintCode] 159 Find Minimum in Rotated Sorted Array
Posted panini
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LintCode] 159 Find Minimum in Rotated Sorted Array相关的知识,希望对你有一定的参考价值。
Description
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
Find the minimum element.
Notice
You may assume no duplicate exists in the array.
Example
Given [4, 5, 6, 7, 0, 1, 2] return 0
4/24/2017
算法班
不需要跟特定值比较,while里面判断只有2个分支。
1 public class Solution { 2 /** 3 * @param nums: a rotated sorted array 4 * @return: the minimum number in the array 5 */ 6 public int findMin(int[] nums) { 7 // write your code here 8 if (nums == null || nums.length == 0) return -1; 9 int start = 0, end = nums.length - 1; 10 11 while (start + 1 < end) { 12 int mid = start + (end - start) / 2; 13 if (nums[mid] < nums[end]) { 14 end = mid; 15 } else { 16 start = mid; 17 } 18 } 19 return nums[start] < nums[end]? nums[start]: nums[end]; 20 } 21 }
以上是关于[LintCode] 159 Find Minimum in Rotated Sorted Array的主要内容,如果未能解决你的问题,请参考以下文章
LintCode : Find Minimum in Rotated Sorted Array
lintcode-medium-Find Peak Element
lintcode-medium-Find the Missing Number