hackerrank生日蛋糕(我差点儿,但是出了点问题)

时间:2019-04-20 10:03:43

标签: python-3.x

例如,如果您的侄女即将满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)”“”出现问题 它说索引错误,但我不知道为什么会导致索引错误。

1 个答案:

答案 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