• 159. 寻找旋转排序数组中的最小值


    159. 寻找旋转排序数组中的最小值

    中文English

    假设一个排好序的数组在其某一未知点发生了旋转(比如0 1 2 4 5 6 7 可能变成4 5 6 7 0 1 2)。你需要找到其中最小的元素。

    样例

    样例 1:

    输入:[4, 5, 6, 7, 0, 1, 2]
    输出:0
    解释:
    数组中的最小值为0
    

    样例 2:

    输入:[2,1]
    输出:1
    解释:
    数组中的最小值为1
    

    注意事项

    你可以假设数组中不存在重复元素。

    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param nums: a rotated sorted array
        @return: the minimum number in the array
        """
        def findMin(self, nums):
            # write your code here
            start, end = 0, len(nums) - 1 
            
            while start + 1 < end:
           #第一种情况,如果直接是升序数组的话,直接返回
    if (nums[start] < nums[end]): return nums[start] mid = (start + end) // 2 #说明左边是升序的,最小值肯定不在左边,上面已经判断过了 if (nums[start] < nums[mid]): start = mid + 1 else: #说明右边是升序的,最小值在左边 end = mid if (nums[start] < nums[end]): return nums[start] else: return nums[end]
  • 相关阅读:
    JavaScript
    并发编程基础
    基于 TCP & UDP 协议的 socket 通信
    struct 模块 & subprocess 模块
    Python中的异常处理
    网络编程基础
    Json 模块补充
    冒泡排序
    OOP 反射 & 元类
    OOP 内置函数
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/13191725.html
Copyright © 2020-2023  润新知