[LeetCode]Third Maximum Number

题目描述:

LeetCode 414. Third Maximum Number

Given an array of integers, return the 3rd Maximum Number in this array, if it doesn't exist, return the Maximum Number. The time complexity must be O(n) or less.

题目大意:

给定一个整数数组,返回数组中第3大的数,如果不存在,则返回最大的数字。时间复杂度应该是O(n)或者更少。

解题思路:

利用变量a, b, c分别记录数组第1,2,3大的数字

遍历一次数组即可,时间复杂度O(n)

Python代码:

class Solution(object):
    def thirdMax(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        a = b = c = None
        for n in nums:
            if n > a:
                a, b, c = n, a, b
            elif a > n > b:
                b, c = n, b
            elif b > n > c:
                c = n
        return c if c is not None else a

 

本文链接:http://bookshadow.com/weblog/2016/10/09/leetcode-third-maximum-number/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码