我有:
def third_greatest(nums)
highest_num_array = []
highest_num = 0
i = 0
while highest_num_array.length < 3
while i < nums.length
if nums[i] > highest_num
highest_num = nums[i]
end
i = i + 1
end
nums.delete(highest_num)
highest_num_array.push(highest_num)
end
return highest_num_array[2]
end
我一直得到最高的数字。我做错了什么?
答案 0 :(得分:1)
highest_num
不会被重新整理。因此它将保持列表中的最高数字,并且将被推入阵列三次。
如果你把
highest_num = 0
后
while highest_num_array.length < 3
它应该有用。
<小时/> 即使这样,您的代码也存在很多问题:
> = 0
。你想要的只是
numbers.max(3).last