LeetCode #414 第三大的数

解题思路
数组从大到小排序后,从第2个元素开始遍历,如果与上一个元素不相同,则标志位++,
标志位一旦从1加到3(两次)则代表存在第三大的数,即可返回。
如若不存在第三大的数,则在遍历结束后,函数末尾返回数组的第一个元素(最大的元素)。

标程

复制代码
 1 class Solution {
 2 public:
 3     int thirdMax(vector<int>& nums) {
 4         sort(nums.begin(), nums.end(), greater<>());
 5         for(int i = 1, flag = 1; i < nums.size(); i++){
 6             if(nums[i] != nums[i-1] && ++flag == 3){ 
 7                 return nums[i]; //存在第三大的元素,则返回
 8             }
 9         }
10         return nums[0]; //否则返回数组中最大的元素
11     }
12 };
复制代码

时间复杂度

O(N)

posted @   -Miracle-  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示