LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
来源:互联网 发布:交通安全事故数据 编辑:程序博客网 时间:2024/05/17 07:49
Question
Suppose an array sorted in ascending order 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.
note:
- You may assume no duplicate exists in the array.
问题解析:
给定一个原本按照升序排序的数字,但在输入之前在某个结点上进行了数组的旋转,找到数组的最小值。
Answer
Solution 1:
二分法。
- 因为给定的数组是按照升序排序好的,所以
num[0]
就是数组的最小值。但是在输入之前可能会在某个结点进行旋转,旋转之后最低位一定是大于最高位的; - 下面以旋转后进行分析:以二分法进行判断,如果中间位置大于高位,那么说明最小值处于
mid
和high
之间;否则,说明最小值处于low
和mid
之间。 - 一旦low位置的值小于high位置的值,也就是已经找到升序排序的子数组,那么
low
位置的值就是整个数组的最小值。
class Solution { public int findMin(int[] nums) { if (nums == null || nums.length == 0) return 0; if (nums.length == 1) return nums[0]; int low = 0, high = nums.length - 1; while (nums[low] > nums[high]){ int mid = (low + high) / 2; if (nums[mid] > nums[high]) low = mid + 1; else high = mid; } return nums[low]; }}
- 时间复杂度:O(lgn),空间复杂度:O(1)
阅读全文
0 0
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- [leetcode 153]Find Minimum in Rotated Sorted Array----求旋转数组的最小值
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array (查找旋转有序数组中的最小值)
- 【LintCode】 Find Minimum in Rotated Sorted Array 寻找旋转排序数组中的最小值
- 159.Find Minimum in Rotated Sorted Array-寻找旋转排序数组中的最小值(中等题)
- [Java语言] [Leetcode] Find Minimum in Rotated Sorted Array 找旋转有序数组的最小值
- Find Minimum in Rotated Sorted Array (旋转数组最小值)
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array II(查找旋转有序数组中的最小值 - 二)
- Find Minimum in Rotated Sorted Array 旋转数组中找最小值 @LeetCode
- 160.Find Minimum in Rotated Sorted Array II-寻找旋转排序数组中的最小值 II(中等题)
- Array----- 153. Find Minimum in Rotated Sorted Array(查找旋转后的有序数组中最小值)
- leetcode 153[medium]---Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array 2 寻找旋转有序数组的最小值之二
- LeetCode-Find Minimum in Rotated Sorted Array(找出反转数组中的最小值)
- Find Minimum in Rotated Sorted Array II 旋转数组中找最小值(有重复元素) @LeetCode
- 数组-Find Minimum in Rotated Sorted Array(旋转数组求最小值)
- 【LeetCode-面试算法经典-Java实现】【153-Find Minimum in Rotated Sorted Array(找旋转数组中的最小数字)】
- Leetcode 153. Find Minimum in Rotated Sorted Array (Medium) (cpp)
- java笔试题50道
- Scrapy的安装介绍
- 立冬出生的宝宝取名大全测试打分准不准
- 入门案例
- 第一届嵌入式电子协会竞赛之智能家居控制系统
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- building-gcc-4-8-from-source-on-ubunu-12-04/
- 面向对象程序设计原则
- ubuntu16.04 运行dso_ros
- IDEA安装插件
- 浅读Tomcat源码(三)---请求处理
- webservice示例获取城市天气
- windows环境Python配置:同时安装Python2.7和Python3.6开发环境
- java8 利用 stream,lambda 将一个数组转化为字符串String