例如,如果您的侄女即将满4岁,并且蛋糕上将有4根蜡烛的高度分别为4、4、1、3,那么她将能够成功吹灭2根蜡烛,因为最高的蜡烛是高度4,有这样 2支蜡烛。
样本输入
4
3 2 1 3
样本输出
2
这是我的代码
def birthdayCakeCandles(ar):
candle = []
for i in ar:
if ar[i] == max(ar):
candle.append(ar[i])
print(len(candle))
在Pycharm中,“”“ if [i] == max(ar)”“”出现问题 它说索引错误,但我不知道为什么会导致索引错误。
答案 0 :(得分:0)
关于如何遍历列表,您将混淆两个概念。
另外,我们不需要列表,只需要一个变量candles
即可保存有效蜡烛数
第一种方法是选择列表中的每个元素并使用它,我们通过执行for elem in list
来实现,其中elem=4,4,1..
def birthdayCakeCandles(ar):
candles = 0
#Maximum value in array
max_arr = max(ar)
#a in an element in ar
for a in ar:
if a == max_arr:
candles+=1
print(candles)
第二种方法是获取列表的索引并使用这些索引进行迭代,即for i in range(len(ar))
,其中i=0,1,2...
等。
def birthdayCakeCandles(ar):
candles = 0
max_arr = max(ar)
#i is the index in ar
for i in range(len(ar)):
if ar[i] == max_arr:
candles+=1
print(candles)
在两种情况下,输出均为2