414. Third Maximum Number
Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).
给一个数组, 求数组内第三大的数, 如果不存在, 则返回最大的数. 题目还有一个特别的要求, 时间复杂度控制在$O(n)$, 意味着, 不能排序.
思路
先把数组去重, 然后个数少于3的直接返回最大值. 然后维护一个长度为3的tops
数组, 从左往右扫描, 然后个扫到的值更新到tops
数组里面.
Code
1 | def thirdMax(nums): |