leetcode414. Third Maximum Number

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

题目

easy程度题

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.
第一次做题,一个easy的题都写了一个多小时- -!
我的代码,先来个选择排序,然后,if,if,if- -
class Solution
{
public:
    int thirdMax(vector<int>& a)
    {
        int n=a.size();
        if(n==1)
            return a[0];
        
        if(n==2)
            return a[0]>=a[1]?a[0]:a[1];
        
        bool sorted= false;
        for(int size=n;(!sorted)&&(size>1);size--)
    	{
    		sorted=true;
    		int indexOfMax=0;
    		for(int i=1;i<size;i++)
    			if(a[indexOfMax]<=a[i]) indexOfMax=i;
    			else  sorted=false;
    		exchange(a[indexOfMax],a[size-1]);
    	}
        
        int p=0,j,result;
        for(j=n-1;j>0;j--)
        {
            
            if(a[j]>a[j-1]) ++p;
            if(p==2)
            {
                result=a[j-1];
                break;
            }
            
            if(j==1&&p==1)
            {   
                result=a[n-1];
                break;
            }
            
            if(j==1&&p==0)
            {
                result=a[n-1];
                break;
            }
        }
        
        return result;
    }
    
    void exchange(int &a, int &b)
    {
    	int temp=a;
    	a=b;
    	b=temp;
    }
};


高手写的代码
public class Solution  
{  
    public int thirdMax(int[] nums)  
    {  
        long first, second, third;  
        first = second = third = Long.MIN_VALUE;  
        for (int num : nums)  
        {  
            if (num == first || num == second || num == third) continue;  
            if (num > first)  
            {  
                third = second;  
                second = first;  
                first = num;  
            }  
            else if (num > second)  
            {  
                third = second;  
                second = num;  
            }  
            else if (num > third) third = num;  
        }  
  
        return (third == Long.MIN_VALUE) ? (int)first : (int)third;  
    }  
}  

哎,还是太年轻了!
Leetcode414. Third Maximum Number @小花 刚开始写一些leetcode的一些笔记,并没有什么经验。 关于题目的描述如下: 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 compl 阅读详情

相关推荐

LeetCode 414.Third Maximum Number

LeetCode 414.Third Maximum NumberDescription: 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

My Blog 360

LeetCode 414. Third Maximum Number

414. Third Maximum Number (第三大的数) 链接:      https://leetcode-cn.com/problems/third-maximum-number/ 题目:      给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。   示例 1:   输入: [3, 2, 1]...

weixin_30522183的博客 205

leetcode414. Third Maximum Number

problem 414.Third Maximum Number solution 思路:用三个变量first, second, third来分别保存第一大、第二大和第三大的数,然后遍历数组。 class Solution { public: int thirdMax(vector<int>& nums) { //1.LONG_MIN...

weixin_30293079的博客 108

[leetcode] 414. Third Maximum Number 解题报告

题目链接:https://leetcode.com/problems/third-maximum-number/ 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 t

小榕流光的专栏 2185

LeetCode //C - 414. Third Maximum Number

【代码】LeetCode //C - 414. Third Maximum Number

Made in Code 850

Leetcode 414. Third Maximum Number

// 要求时间复杂度为O(n),所以不能进行排序 int thirdMax(vector<int>& nums) { if (nums.size() == 0) return -1; long one = LONG_MIN;// 这么写的原因是因为int的最小值INT_MIN,如果将one写成 int one = INT_MIN // ,那么如果nums里面第三个数是I...

无知的博客 125

[leetcode] 414. Third Maximum Number

Description 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: ...

Learning from the mistakes 188

LeetCode 414. Third Maximum Number. C++

414. Third Maximum Number 题目 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). Input: [3, 2, 1] Output: 1 Explanation: The third maximu

Hello 1467

leetcode 414. Third Maximum Number

目录 一、问题分析 二、代码实现 1、排序 2、HashSet去重+小顶堆 3、TreeSet(去重+有序) 4、类似成绩等级划分的方法 https://leetcode.com/problems/third-maximum-number/ 给定一个非空数组,返回第三大的数字,如果不存在则返回数组的最大数字。 一、问题分析 测试用例: Example 1: In...

小景的博客 273

LeetCode 414 Third Maximum Number

Problem: Given anon-emptyarray of integers, return thethirdmaximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n). Example 1: In...

dilian4850的博客 113

Leetcode Third Maximum Number 414

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]Outp

我心中有猛虎 细嗅蔷薇 559

leetcode简单题 414. Third Maximum Number

题目描述: 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,...

zimengxueying的博客 225

Leetcode414. Third Maximum Number

Leetcode414. Third Maximum Number @(Leetcode) 链接:https://leetcode.com/problems/third-maximum-number/description/ 思想: 题目给的数组非空,如果第三大的存在,就返回,否则就返回第一大的值。题目要求在O(n)的时间复杂度内,所以一开始想到的排序就不行了。 可以用三个变量表示前

Life in Technicolor 188

[leetcode]414. Third Maximum Number

题目链接:https://leetcode.com/problems/third-maximum-number/ Given anon-emptyarray of integers, return thethirdmaximum number in this array. If it does not exist, return the maximum number. The t

xiaocong1990的博客 280
上一篇: 闲谈正向和逆向
下一篇: leetcode6. ZigZag Conversion
Coding_Reading
博客等级 码龄10年 17粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值