博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode-414-Third Maximum Number]
阅读量:7201 次
发布时间:2019-06-29

本文共 1135 字,大约阅读时间需要 3 分钟。

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.

 

思路:

首先想到的是用一个map存储数组中的值,作为key,因为map中的key是有序的,于是可以直接拿来用。

int thirdMax(vector
& nums){ map
m; map
::iterator it; for(int i=0;i
first;}

又看到大神用的set,随时保持set的size不超过3个,这样更简洁!

int thirdMax(vector
& nums) { set
top3; for (int num : nums) { top3.insert(num); if (top3.size() > 3) top3.erase(top3.begin()); } return top3.size() == 3 ? *top3.begin() : *top3.rbegin();}

参考:

转载于:https://www.cnblogs.com/hellowooorld/p/6885351.html

你可能感兴趣的文章
重回上海之感想
查看>>
navicat cannot create oci environment
查看>>
解决双击不能运行jar文件的问题
查看>>
2017年投资回顾
查看>>
Hadoop 安装部署实践
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
OpenStack —— 计算服务Nova(四)
查看>>
我的友情链接
查看>>
Nagios监控和飞信机器人结合
查看>>
为redis分配一个新的端口
查看>>
LR参数化1---文本参数化
查看>>
BigDecimal类的四则运算
查看>>
一组常用的弹出窗口用法
查看>>
position属性的注意事项
查看>>
我的友情链接
查看>>
Shell练习(十四)
查看>>
EXCEL-如何把多个格式相同的表格批量做成图表
查看>>
Oracle增删改查--之删
查看>>
Python猜数小游戏
查看>>