#力扣 LeetCode414. 第三大的数 @FDDLC
发布日期:2021-06-30 21:01:39 浏览次数:2 分类:技术文章

本文共 2142 字,大约阅读时间需要 7 分钟。

题目描述:

 

Java代码:

class Solution { //给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。    public int thirdMax(int[] nums) { //要求算法时间复杂度必须是O(n)。        int $1=nums[0],$2=0,$3=0; //$2,$3初始值随意        boolean exist$2=false,exist$3=false;        for(int num:nums){            if(num>$1){                if(exist$2){                    $3=$2;                    exist$3=true;                }                $2=$1;                exist$2=true;                $1=num;            }else if(num<$1){                if(exist$2){                    if(num>$2){                        $3=$2;                        exist$3=true;                        $2=num;                    }                    else if(num<$2){                        if(exist$3){                            if(num>$3)$3=num;                        }                        else{                            $3=num;                            exist$3=true;                        }                    }                }else{                    $2=num;                    exist$2=true;                }            }        }        return exist$3?$3:$1;    }}

 

Java代码二:

class Solution {    public int thirdMax(int[] nums) {        long a=Long.MIN_VALUE,b=Long.MIN_VALUE,c=Long.MIN_VALUE; //a最大        for(int num:nums){            if(num>a){                c=b;                b=a;                a=num;            }else if(num
b){ c=b; b=num; }else if(num
c)c=num; } } return c==Long.MIN_VALUE?(int)a:(int)c; }}

 

Java代码三:

import java.util.Collections;import java.util.LinkedList;class Solution {    public int thirdMax(int[] nums) {        LinkedList
list=new LinkedList<>(); Collections.addAll(list,Long.MIN_VALUE,Long.MIN_VALUE,Long.MIN_VALUE); for(int num:nums){ if(num>list.get(0))list.add(0,(long)num); else if(num
list.get(1))list.add(1,(long)num); else if(num
list.get(2))list.add(2,(long)num); } } return list.get(2)==Long.MIN_VALUE?(int)(long)list.get(0):(int)(long)list.get(2); }}

 

转载地址:https://liuxingchang.blog.csdn.net/article/details/112055699 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:#力扣 LeetCodeLCP 06. 拿硬币 @FDDLC
下一篇:#力扣 LeetCode860. 柠檬水找零 @FDDLC

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年05月02日 22时58分25秒