zoukankan      html  css  js  c++  java
  • leetcode414-第三大的数

    给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。

    示例 1:

    输入: [3, 2, 1]
    
    输出: 1
    
    解释: 第三大的数是 1.
    

    示例 2:

    输入: [1, 2]
    
    输出: 2
    
    解释: 第三大的数不存在, 所以返回最大的数 2 .
    

    示例 3:

    输入: [2, 2, 3, 1]
    
    输出: 1
    
    解释: 注意,要求返回第三大的数,是指第三大且唯一出现的数。
    存在两个值为2的数,它们都排第二。

     
     
    碰到重复元素的情况就要想到set。
     1 class Solution:
     2     def thirdMax(self, nums):
     3         """
     4         :type nums: List[int]
     5         :rtype: int
     6         """
     7         # 用set去除重复元素,但是set不支持下标操作,所以再转成list
     8         # 这里直接赋给nums,不用再定义一个变量
     9         nums = list(set(nums))
    10         nums.sort()
    11         # 如果集合长度小于3,直接返回最大元素
    12         if len(nums) < 3:
    13             return max(nums)
    14         else:
    15             return nums[-3]
     
     
  • 相关阅读:
    Mediawiki 子页链接无效的问题
    变量存储区:堆和栈
    《modern-php》
    HttpApplication处理对象与HttpModule处理模块
    Asp.Net构架(Http请求处理流程)
    Quartz.NET 3.0
    WebApi路由
    RESTful架构
    WCF
    TCP/IP协议
  • 原文地址:https://www.cnblogs.com/kkkky/p/9303254.html
Copyright © 2011-2022 走看看