Leetcode 414
Leetcode 414
我的题解:O(n)
class Solution {public:int thirdMax(vector<int>& nums) {int min = -2147483648;int first=min,second=min,third=min;int len = nums.size();int level=0;int flag=0;for(int i=0;i<len;i++){if(flag==0 && nums[i]==min){flag=1;}else if(nums[i]==first || nums[i]==second || nums[i]==third){continue;}if(nums[i]<third){continue;}else if(nums[i]>=first){third=second;second=first;first=nums[i];if(level<3) level++;}else if(nums[i]>=second){third=second;second=nums[i];if(level<3) level++;}else if(nums[i]>=third){third=nums[i];if(level<3) level++;}}if(level<3) return first;return third;}
};
不想排序所以用了三个变量,初始值设置为int范围的最小值。后来也是因为这个,在极端测试例里面试了好几次。挺乱的一个代码。
看到了leetcode上面百分百的范例,使用了指针,感觉很棒,留着收藏。
解读:int *p 定义p是一个指针,*p代表p指向的值
num是一个int,&num代表他的内存地址
class Solution {public:int thirdMax(vector<int>& nums) {int *a=nullptr,*b=nullptr,*c=nullptr;for(int &num:nums){//不对num==*a/*b/*c的情况做处理,自动排除重复数字if(a==nullptr||num>*a){c=b;b=a;a=#}else if(*a>num&&(b==nullptr||*b<num)){c=b;b=#}else if(b!=nullptr&&*b>num&&(c==nullptr||*c<num))c=#}return c==nullptr?*a:*c;//三目运算符,根据是否有第三大做出判断}
};
Leetcode 414相关推荐
- leetcode 414.第三大的数
leetcode 414.第三大的数 题目描述 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] ...
- Leetcode 414. 第三大的数(详解 C语言实现)
414. 第三大的数(点击查看原题) 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1]输出: 1解 ...
- LeetCode 414. Third Maximum Number
题目: Given a non-empty array of integers, return the third maximum number in this array. If it does n ...
- [Leetcode] 414. 第三大的数
题目描述: 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1]输出: 1解释: 第三大的数是 1. ...
- LeetCode | 414. Third Maximum Number
. 题目 Given an integer array nums, return the third distinct maximum number in this array. If the thi ...
- LeetCode题解目录
最新更新于2020.11.27 前往LeetCode主页. 前往GitHub源码.(服务器原因,暂停同步.) 前往码云主页. 已解决 456/1878 - 简单353 中等 90 困难 13 2020 ...
- 《算法基础》线性枚举(一)——最值算法
目录 1.LeetCode--485. 最大连续 1 的个数 2.LeetCode--1464. 数组中两元素的最大乘积 3.LeetCode--153. 寻找旋转排序数组中的最小值 4.LeetCd ...
- LeetCode412_412. Fizz Buzz
LeetCode412_412. Fizz Buzz 一.描述 给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果, ...
- leetcode(3)——414. 第三大的数(C++中的 set,::作用符号,迭代器),628 三个数的最大乘积(sort函数的用法)
文章目录 前言 414 程序 疑惑 set ::在c++中什么意思 一.作用域符号: 二.全局作用域符号: 三.作用域分解运算符: C++ 迭代器 628 程序 疑惑 sort函数 前言 大佬的程序, ...
最新文章
- 作为HTC在MWC2012移动世界大会上推出的全新系列产品。
- [分享]关于windows下的小技巧
- Vertica数据库
- Simulink代码生成: 延时模块及其代码
- 一篇文章搞定,SpringBoot 创建定时任务
- 爱因斯坦最熟悉的中国人,曾被学校开除的自学天才周培源
- 蚂蚁森林上线三周年,5亿人“手机种树”1.22亿棵...
- 设置element-iu中table滚动条位置
- 解决office2003无法卸载的问题
- ajax如何用编号查询姓名,Ajax js 使用Ajax检测用户名是否存在
- C# 图解教程 第一章 C#和.NET框架
- 遗传算法详解及代码实现
- 绘制计算机网络拓扑图,绘制网络拓扑图1.ppt
- 三.minio 的分布式部署、单节点多磁盘、多节点模式
- linux输入文件后clustalw,ClustalW----多序列比对分析(一)
- UUP, Windows 11 更新机制的未来
- 热炒了的《消防设施操作员》,想报考却为何冷中带静?
- 如何高效的学习高等数学
- c语言用for或while计算,C语言趣味编程:使用while循环结构计算圆周率pi
- Nexus arm Linux,[原创] Nexus 6p 刷入Kali Linux NetHunter 2019.3方法
热门文章
- 湖南艺术职业学院计算机音乐,湖南艺术职业学院音乐系
- java 上转型对象_Java上转型和下转型对象
- 三菱四节传送带控制梯形图_三菱plc控制传送带三级 编程 fx2n 模拟四节传送带控制实验三菱...
- 《奔跑吧 Linux内核》之处理器体系结构
- 洛杉矶警局用 AI “预测犯罪”;北欧银行拟裁员六千,用智能机器取而代之
- Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器
- 流/批/OLAP一体的Flink引擎
- Pangu and Stones 解题报告
- Python+Vue计算机毕业设计框架的综合性电商6si2i(程序+LW+源码+部署)
- 46、万维网之一(应用层)