题目:
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
示例 1:
输入: [3, 2, 1]
输出: 1
解释: 第三大的数是 1.
示例 2:输入: [1, 2]
输出: 2
解释: 第三大的数不存在, 所以返回最大的数 2 .
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/third-maximum-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
先给数组去重,然后排序,求第三大数,如果数组小于3个则输入nums[1]
代码:
/**
* @param {number[]} nums
* @return {number}
*/
var thirdMax = function(nums) {
var d1=new Set(nums)
var d=Array.from(d1)
d.sort(function(a,b){
return a-b;
})
return d[d.length-1]=!null?d[d.length-3]:d[1]
};