LeetCode刷题414-简单-第三大的数

171 阅读2分钟

「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战」。 在这里插入图片描述

@[toc]

☀️ 前言 ☀️

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

🙀 作者简介 🙀

大家好,我是布小禅,一个尽力让无情的代码变得生动有趣的IT小白,很高兴能偶认识你,关注我,每天坚持学点东西,我们以后就是大佬啦!

这是我刷第 44/100 道力扣简单题

💗 一、题目描述 💗

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/th… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例1:

输入:[3, 2, 1]
输出:1
解释:第三大的数是 1

示例2:

输入:[1, 2]
输出:2
解释:第三大的数不存在, 所以返回最大的数 2

示例3:

输入:[2, 2, 3, 1]
输出:1
解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。
此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1

提示:1 <= nums.length <= 104 -231 <= nums[i] <= 231 - 1

💁 二、题目解析 💁

思路1\color{green}{思路1:}

去除重复元素 判断 返回

🏃 三、代码 🏃

☁️ 1️⃣. python ☁️

class Solution:
    def thirdMax(self, nums: List[int]) -> int:
        nums = list(set(nums))
        nums.sort()
        if len(nums)<=2: return nums[-1]
        else: return nums[len(nums)-3]

❄️ 2️⃣. C# ❄️

public class Solution {
    public int ThirdMax(int[] nums) {
        HashSet<int> se = new HashSet<int>(nums);
        int m = 0;
        int[] numbers = new int[se.Count];
        foreach(int i in se){
            numbers[m] = i;
            m++;
        }
        Array.Sort(numbers);
        if (numbers.Length<=2) return numbers[numbers.Length-1];
        else return numbers[numbers.Length-3];
    }
}

🌔 结语 🌔

坚持最重要,每日一题必不可少!:smile_cat:

期待你的关注和督促!:stuck_out_tongue:

在这里插入图片描述