news 2026/4/18 11:29:57

LC.414 | 第三大的数 | 数组 | 一次遍历维护三个最大值(去重)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LC.414 | 第三大的数 | 数组 | 一次遍历维护三个最大值(去重)

输入:非空整数数组nums(可能包含重复元素)。

要求:返回数组中第三大的不同数字;如果不存在第三大的不同数字,则返回数组中的最大值。

输出:整数(第三大或最大值)。


思路:

题眼是“第三大”指的是不同数字的第三大,所以必须去重

用一次遍历维护三个变量:

  • max1:当前最大值
  • max2:当前第二大(不同值)
  • max3:当前第三大(不同值)

初始化都为LLONG_MIN,避免数组里有INT_MIN时冲突。

遍历每个元素v时:

  1. 先去重:如果v等于max1/max2/max3,直接跳过。
  2. 然后把v放进这三个槽位里(类似插入排序的三格版):
    • v > max1:整体后移:max3=max2, max2=max1, max1=v
    • 否则如果v > max2max3=max2, max2=v
    • 否则如果v > max3max3=v

遍历结束:

  • 如果max3还是没被填过(仍为LLONG_MIN),说明不足三个不同数,返回max1
  • 否则返回max3

复杂度:

  • 时间复杂度:O(N)
  • 空间复杂度:O(1)

classSolution{public:intthirdMax(vector<int>&nums){longlongmax1=LLONG_MIN,max2=LLONG_MIN,max3=LLONG_MIN;for(intx:nums){longlongv=x;// 去重:只统计“不同数字”的排名if(v==max1||v==max2||v==max3)continue;if(v>max1){max3=max2;max2=max1;max1=v;}elseif(v>max2){max3=max2;max2=v;}elseif(v>max3){max3=v;}}return(max3==LLONG_MIN)?(int)max1:(int)max3;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:33:40

软件测试领域的重大挑战问题分析

测试之困&#xff0c;不止于技术在数字化高速迭代的今天&#xff0c;软件已渗透至社会运行的每一个毛细血管。作为保障软件质量与用户体验的关键闸门&#xff0c;软件测试的角色从未如此重要&#xff0c;也从未面临如此复杂的境遇。对于广大软件测试从业者而言&#xff0c;我们…

作者头像 李华
网站建设 2026/4/18 3:36:16

顶尖高校联合发布重磅AI智能体记忆系统进化全景综述报告

AI的记忆不仅仅是存储过去&#xff0c;它是智能体跨越时间长河、实现持续进化与复杂推理的灵魂核心。 过去两年&#xff0c;大语言模型展现了惊人的能力&#xff0c;但若没有记忆&#xff0c;它们只是拥有无限瞬时算力的健忘天才。 新加坡国立大学、中国人民大学、复旦大学&a…

作者头像 李华
网站建设 2026/4/18 7:52:35

开源SOTA,浙大团队多图精准控制与身份一致性新突破

浙江大学 ReLER 实验室团队开源了 ContextGen 多图参考身份一致性生成模型。ContextGen 通过 CLA&#xff08;Contextual Layout Anchoring&#xff0c;上下文布局锚定&#xff09;与 ICA&#xff08;Identity Consistency Attention&#xff0c;身份一致性注意力&#xff09;两…

作者头像 李华
网站建设 2026/4/17 5:19:51

日志审计功能启用:满足企业IT监管需求的操作步骤

日志审计功能启用&#xff1a;满足企业IT监管需求的操作步骤 在金融、医疗、制造等行业&#xff0c;一次未经授权的文档访问或权限变更&#xff0c;可能引发连锁性的合规风险。随着AI系统深度嵌入企业的知识管理流程&#xff0c;如何确保每一次查询、上传和配置调整都“有迹可循…

作者头像 李华
网站建设 2026/4/18 3:30:42

图解说明cp2102 usb to uart bridge controller驱动流程

从“未知设备”到稳定通信&#xff1a;深入拆解 CP2102 USB转串口的驱动全流程 你有没有遇到过这样的场景&#xff1f; 手头一块开发板插上电脑&#xff0c;设备管理器里却只显示一个带黄色感叹号的“未知设备”。明明是常见的USB转TTL模块&#xff0c;怎么就是不能识别成COM…

作者头像 李华