news 2026/4/16 19:09:48

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/16 13:41:44

金融产品说明书智能解读系统——基于anything-llm构建

金融产品说明书智能解读系统——基于 anything-LLM 构建 在金融机构的日常运营中&#xff0c;客户经理和投研人员常常面临一个看似简单却异常耗时的问题&#xff1a;如何快速、准确地回答“这款产品的赎回费是怎么收的&#xff1f;”“它的风险等级适合我吗&#xff1f;”这类问…

作者头像 李华
网站建设 2026/4/16 13:32:15

揭秘Open-AutoGLM黑科技:如何用3步将普通手机变身为AI推理终端

第一章&#xff1a;Open-AutoGLM开源代码打造ai手机教程Open-AutoGLM 是一个基于开源大语言模型&#xff08;LLM&#xff09;的自动化推理框架&#xff0c;专为移动设备优化设计。通过该框架&#xff0c;开发者可以将强大的 AI 能力部署到普通智能手机上&#xff0c;实现本地化…

作者头像 李华
网站建设 2026/4/16 15:08:13

你不可错过的Open-AutoGLM控制台7个隐藏功能,第5个太惊艳

第一章&#xff1a;你不可错过的Open-AutoGLM控制台核心概述Open-AutoGLM 是一款面向自动化自然语言处理任务的开源控制台工具&#xff0c;专为开发者和数据科学家设计&#xff0c;支持模型调用、任务编排与结果追踪一体化操作。其核心架构基于模块化设计&#xff0c;允许用户通…

作者头像 李华
网站建设 2026/4/15 21:53:50

Open-AutoGLM部署难题全攻克,10个坑我替你踩过了

第一章&#xff1a;Open-AutoGLM开源代码打造ai手机教程 通过利用 Open-AutoGLM 开源项目&#xff0c;开发者可以将大语言模型能力深度集成到定制化 AI 手机中&#xff0c;实现本地化推理、语音交互与智能任务调度。该项目基于轻量化 GLM 架构&#xff0c;支持在端侧设备&#…

作者头像 李华
网站建设 2026/4/16 10:57:02

LangFlow与Streamlit对比:哪个更适合非技术用户?

LangFlow与Streamlit对比&#xff1a;哪个更适合非技术用户&#xff1f; 在AI应用开发门槛不断降低的今天&#xff0c;越来越多的产品经理、业务分析师甚至教育工作者都希望亲手搭建一个能“说话”的智能系统——比如让大模型自动回答客户问题&#xff0c;或根据提示生成营销文…

作者头像 李华