zoukankan      html  css  js  c++  java
  • LeetCode:153. 寻找旋转排序数组中的最小值

    假设按照升序排序的数组在预先未知的某个点上进行了旋转。

    ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

    请找出其中最小的元素。

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

    示例 1:

    输入: [3,4,5,1,2]
    输出: 1
    示例 2:

    输入: [4,5,6,7,0,1,2]
    输出: 0

    解法一:

    只要找到数值降低的第一个数即可

    1 class Solution:
    2     def findMin(self, nums: List[int]) -> int:
    3         for i in range(len(nums)-1):
    4             if nums[i] > nums[i+1]:
    5                 return nums[i+1]
    6         return nums[0]

    解法二:(其他大神的解法时间上是N/2,我自己写的那个时间复杂度是N)

    利用二分查找

     1 class Solution:
     2     def findMin(self, nums: List[int]) -> int:
     3         if nums == []:
     4             return
     5         left = 0
     6         right = len(nums)-1
     7         result = nums[0]
     8         while left <= right:
     9             mid = (left + right) // 2
    10             if nums[mid] >= nums[left]:
    11                 result = min(result,nums[left])
    12                 left = mid + 1
    13             else:
    14                 result = min(result,nums[mid]) 
    15                 right = mid -1 
    16         return result 

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 相关阅读:
    centos7 mysql 数据库备份与还原
    Centos 7 搭建wordpress
    Centos 7 安装 mysql5.7
    linux 搭建php网站许愿墙
    GNOME桌面的安装
    cetnos 7 ntp服务的安装与配置
    Tornado初探
    Mysql报错 Cannot load from mysql.proc
    zabbix install
    PYPY_GC
  • 原文地址:https://www.cnblogs.com/Halo-zyh-Go/p/12781186.html
Copyright © 2011-2022 走看看