题解 | #旋转排列之找出最矮的牛#
旋转排列之找出最矮的牛
https://www.nowcoder.com/practice/ea91217beb83444aa324b86bfab4a952
- 题目考察的知识点 : 二分,分而治之
- 题目解答方法的文字分析:
- 如果数组没有旋转,那么最小元素一定是第一个元素。
- 如果数组经过旋转,那么最小元素一定会在中间某个位置出现。
- 将数组从中间位置分开,那么至少有一半是有序的。如果最小元素在有序的那一半中,那么我们需要在这一部分中继续查找。否则,最小元素就在另一半中,我们需要在那一半中查找。
- 本题解析所用的编程语言:Python
- 完整且正确的编程代码
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param heights int整型一维数组
# @return int整型
#
class Solution:
def findMin(self , heights: List[int]) -> int:
left = 0
right = len(heights) - 1
res = 0
while left < right:
mid = (left + right) // 2
if heights[mid] < heights[right]:
left = mid + 1
elif heights[mid] > heights[right]:
right = mid
res = mid
return heights[res]
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路

