<LeetCode OJ> Find Minimum in Rotated Sorted Array【153】
2015-12-29 11:19
411 查看
153. Find Minimum in Rotated Sorted Array
My SubmissionsQuestion
Total Accepted: 73048 Total
Submissions: 209952 Difficulty: Medium
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
0 1 2 4 5 6 7might become
4 5 6 7 0 1 2).
Find the minimum element.
You may assume no duplicate exists in the array.
Subscribe to see which companies asked this question
Hide Tags
Array Binary
Search
Hide Similar Problems
(H) Search in Rotated Sorted Array (H)
Find Minimum in Rotated Sorted Array II
//思路首先:遍历一遍时间复杂度是O(N) class Solution { public: int findMin(vector<int>& nums) { int minum=nums[0]; for(int i=1;i<nums.size();i++) { if(nums[i]<minum) minum=nums[i]; } return minum; } };
//思路首先:第二种方法还是直接遍历, //按照题目所说数组应该是先上升,在下降,如果下降了,这个值就是最小值 class Solution { public: int findMin(vector<int>& nums) { int minum=nums[0]; for(int i=1;i<nums.size();i++) { if(nums[i-1]>nums[i]) { minum=nums[i]; break; } } return minum; } };
//思路首先:第三种方法,二分法 // class Solution { public: int findMin(vector<int>& nums) { if(nums.empty()) return 0; if(nums.size() == 1) return nums[0]; int low = 0, high = nums.size()-1; while(low < high && nums[low] > nums[high]) { int mid = low + (high-low)/2; if(nums[mid] < nums[low]) high = mid; else if(nums[mid] == nums[low]) return nums[high]; else low = mid+1; } return nums[low]; } };
相关文章推荐
- list 数组分类存到map中
- SkylineGlobe 邻近度(Proximity)分析JavaScript源代码
- ionic开发环境搭建
- redis使用规范
- 网站--乱码
- C/C++语言的存储类型
- SVN使用教程总结
- 矩阵操作
- 单元测试利器之Jtester
- 9.1---上楼梯(CC150)
- jquery 表格行计算
- Linux kernel scriptes bin2c "\x"
- 多线程Socket通讯复习
- BFS宽度优先搜索思想
- 动态规划算法求lcs(最长公共子串)之Java代码实现
- java中的volatile的用法
- Android—解决Mapview和其他界面切换出现闪屏的问题(同事想法)
- 自定义属性
- iOS/iphone开发如何为苹果开发者帐号APPID续费
- C++指针比较的问题