返回
LeetCode题解:寻找第三大的数,秀出你的编程实力!
闲谈
2023-10-24 03:52:57
直面LeetCode挑战,寻找第三大的数
-
题目剖析:
- 输入:一个非空数组 nums。
- 输出:如果数组中存在第三大的数,则返回第三大的数;否则,返回数组中最大的数。
-
解决思路:
- 首先,我们可以对数组进行排序,然后直接取第三大的数。但是,这种方法的时间复杂度是 O(n log n),当数组很大时,效率不高。
- 为了提高效率,我们可以使用以下改进的方法:
- 先找出数组中的最大值和第二大的数。
- 然后,从数组中移除这两个数,并再次找出数组中的最大值。
- 这个最大值就是第三大的数。
-
代码实现:
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刷题之旅仍在继续,期待你的每一次挑战!让我们一起在算法的世界中不断进步,磨练编程技能,成为更优秀的程序员。加油,挑战者!