[leetcode] 414. Third Maximum Number

网友投稿 248 2022-09-14

[leetcode] 414. Third Maximum Number

Description

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).

Example 1: Input:

[3, 2, 1]

Output:

1

Explanation:

The third maximum is 1.

Example 2: Input:

[1, 2]

Output:

2

Explanation:

The third maximum does not exist, so the maximum (2) is returned instead.

Example 3: Input: [2, 2, 3, 1]

Output: 1

Explanation:

Note that the third maximum here means the third maximum distinct number.Both numbers with value 2 are both considered as second maximum.

分析

题目的意思是:

用三个变量A[0], A[1], A[2]来分别保存第一大,第二大,和第三大的数,然后遍历数组,如果遍历到的数字大于当前第一大的数A[0],那么三个变量各自错位赋值,如果当前数字大于A[1],小于A[0],那么就更新A[1]和A[2],如果当前数字大于A[2],小于A[1],那就只更新A[0]。注意这里有个坑,就是初始化要用长整型long的最小值,否则当数组中有INT_MIN存在时,程序就不知道该返回INT_MIN还是最大值first了。

代码

class Solution {public: int thirdMax(vector& nums) { vector A(3,LONG_MIN); for(int i=0;i

参考文献

​​[LeetCode] Third Maximum Number 第三大的数​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:营销最前线:一家味精工厂,卡住了全世界芯片企业!
下一篇:keras 自定义ImageDataGenerator用于多标签分类
相关文章

 发表评论

暂时没有评论,来抢沙发吧~