首页 > 代码库 > Find Minimum in Rotated Sorted Array
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 become4 5 6 7 0 1 2
).Find the minimum element.
You may assume no duplicate exists in the array.
分析:
排好序的数组基于某个位置截断然后前后两段交换一下,
[0,1,2], [4,5,6,7] => [4,5,6,7], [0,1,2]
前后两段都应该是递增序列,所以遍历列表,如果某个元素小于前一个,那就是截断的第一段序列的开始,就是要找的整个列表里面的最小值。
class Solution: # @param num, a list of integer # @return an integer def findMin(self, num): pre = num[0] for i in num[1:]: if i < pre: return i else: pre = i return num[0]if __name__ == ‘__main__‘: s = Solution() assert s.findMin([4, 5, 6, 7, 0, 1, 2]) == 0 print ‘PASS‘
小结:
这个问题从直觉上就是这个解法,直接写了代码就Accepted了。
Find Minimum in Rotated Sorted Array
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。