返回

LeetCode题解:寻找第三大的数,秀出你的编程实力!

闲谈

直面LeetCode挑战,寻找第三大的数

  1. 题目剖析:

    • 输入:一个非空数组 nums。
    • 输出:如果数组中存在第三大的数,则返回第三大的数;否则,返回数组中最大的数。
  2. 解决思路:

    • 首先,我们可以对数组进行排序,然后直接取第三大的数。但是,这种方法的时间复杂度是 O(n log n),当数组很大时,效率不高。
    • 为了提高效率,我们可以使用以下改进的方法:
      • 先找出数组中的最大值和第二大的数。
      • 然后,从数组中移除这两个数,并再次找出数组中的最大值。
      • 这个最大值就是第三大的数。
  3. 代码实现:

    def find_third_largest(nums):
        """
        Find the third largest number in a non-empty array.
    
        Args:
            nums (list): A non-empty array of integers.
    
        Returns:
            int: The third largest number in the array.
        """
    
        # Find the maximum and second maximum numbers in the array.
        max_num = float('-inf')
        second_max_num = float('-inf')
        for num in nums:
            if num > max_num:
                second_max_num = max_num
                max_num = num
            elif num > second_max_num and num != max_num:
                second_max_num = num
    
        # Remove the maximum and second maximum numbers from the array.
        nums.remove(max_num)
        nums.remove(second_max_num)
    
        # Find the maximum number in the remaining array.
        third_max_num = max(nums)
    
        # Return the third maximum number.
        return third_max_num
    

结语

LeetCode刷题之旅仍在继续,期待你的每一次挑战!让我们一起在算法的世界中不断进步,磨练编程技能,成为更优秀的程序员。加油,挑战者!