Lintcode 160. Find Minimum in Rotated Sorted Array II

題目鏈接:https://www.lintcode.com/problem/find-minimum-in-rotated-sorted-array-ii/description

/**
* @param nums: a rotated sorted array
* @return: the minimum number in the array
*/
func findMin(nums []int) int {
	// write your code here
	if (nums == nil || len(nums) == 0) {
		return -1;
	}
	var start int = 0;
	var end int = len(nums) - 1;
	for {
		if (start+1 >= end) {
			break;
		}
		var mid int = (start + end) / 2;
		if (nums[mid] == nums[end]) {
			end--;
		} else if (nums[mid] < nums[end]) {
			end = mid;
		} else {
			start = mid;
		}
	}
	return min(nums[start], nums[end]);
}

func min(x, y int) int {
	if (x < y) {
		return x;
	}
	return y;
}

func main() {
	var nums1 = []int{4, 4, 5, 6, 7, 0, 1, 2};
	var m1 = findMin(nums1);
	fmt.Println(m1);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章