leetcode_154 Find Minimum in Rotated Sorted Array II
2016-03-31 22:00
363 查看
题目分析:
解题思路:
两种方法实现
方法1:从后向前一遍遍历扫描实现
方法2:利用二分查找实现。
实现程序
在递增的旋转数组中找到最小的数(数组中可能存在重复数)。
解题思路:
两种方法实现
方法1:从后向前一遍遍历扫描实现
方法2:利用二分查找实现。
实现程序
class Solution { public: //从后向前扫描实现 int findMin1(vector<int> &nums) { if (nums.size() == 0) // 处理特殊情况 return -1; if (nums.size() == 1) return nums[0]; int j = nums.size() - 1; int min = nums[j]; for (j = j - 1; j >= 0; j--) // 一遍遍历扫描判断 { if (nums[j] < min) { min = nums[j]; } } return min; } //二分查找实现 int findMin(vector<int> &nums) { if (nums.size() == 0) // 处理特殊情况 return -1; if (nums.size() == 1) return nums[0]; int size = nums.size() - 1; int begin = 0; int end = size; // 二分查找实现 while (begin < end && nums[begin] >= nums[end]) { int mid = (begin + end) / 2; if (nums[mid] < nums[begin]) { end = mid; } else if (nums[mid] == nums[begin]) // 调整出现数组数相等情况 { begin++; } else { begin = mid + 1; } } return nums[begin]; } };
相关文章推荐
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum
- [LeetCode] Find the k-th Smallest Element in the Union of Two Sorted Arrays
- [LeetCode] Determine If Two Rectangles Overlap
- [LeetCode] A Distance Maximizing Problem
- leetcode_linearList
- leetcode_linearList02
- 021-Merge Two Sorted Lists(合并两个排好序的单链表);leetcode
- LeetCode[Day 1] Two Sum 题解
- LeetCode[Day 2] Median of Two Sorted Arrays 题解
- LeetCode[Day 3] Longest Substring Without... 题解
- LeetCode [Day 4] Add Two Numbers 题解