leetcode153。。。
Find Minimum in Rotated Sorted Array
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.
You may assume no duplicate exists in the array.
啊啊,,这个题,,,,我直接耍赖了,,,,,直接把vector里的东西放入set里面了,,然后返回第一个值。。。。。。感觉有点投机取巧,,虽然造好的轮子就应该熟练使用。。。。
class Solution {
public:
int findMin(vector<int>& nums) {
set<int> si(nums.begin(), nums.end());
return *si.begin();
}
};
刚写到这,我又回头翻了下题目的小tags,提示使用二分法,的确,因为如过一段排序的数组随意截断再接到后面的话,后一段的任何一个数都比前一段的数小,于是使用二分法,先找中点然后判断中点是否小于最前面的数,如果小的话,留下前半段,继续二分,因为最小的数一定留在这一段中。
可能我这段话描述的不是很清楚,,说的也可能不是很对,,但感觉还是有点理可寻,,,我再去看看别人的写法。。。