解决之路= =
题目描述
测试案例(部分)
第一次
循环两次,删除数组中最大的元素,然后再找出此时数组中最大的数,就是第三大的数了。
class Solution(object):
def thirdMax(self, nums):
for i in range(2):
nums.remove(max(nums))
return max(nums)
测试正确,提交失败。
发现有数组长度小于3的情况,导致报错。
第二次
加一个判断即可。
class Solution(object):
def thirdMax(self, nums):
if len(nums) < 3:
pass
else:
for i in range(2):
nums.remove(max(nums))
return max(nums)
测试正确,提交未通过。
可以看出,当有重复情况时,需要一并删除。
第三次
那我们再用set
去一下重即可。
class Solution(object):
def thirdMax(self, nums):
nums = list(set(nums))
if len(nums) < 3:
pass
else:
for i in range(2):
nums.remove(max(nums))
return max(nums)
测试正确,提交通过。
执行的时间是算合格的,同样的代码提交了两遍,第二遍超过了87%的人,已经可以了。
再完善一下代码,可以简化一下。
class Solution(object):
def thirdMax(self, nums):
nums = list(set(nums))
if len(nums) >= 3:
for i in range(2):
nums.remove(max(nums))
return max(nums)
没想到还能更快。。。不知道是不是完善代码导致的,还是服务器响应速度问题。。。