上下文类型“Int”不能与数组文字一起使用

时间:2017-09-15 17:00:23

标签: swift for-loop

我正在尝试执行的代码将返回数组中相邻成员的最大产品。 这是我的代码:

func adjacentElementsProduct(inputArray: [Int]) -> Int {
    var multiplierArray = [Int?]()

    for i in 0...(inputArray.count-1) {
        multiplierArray.append([inputArray[i]*inputArray[i+1]])
       }
    return multiplierArray.max()
}

我收到了标题中描述的错误:

multiplierArray.append([inputArray[i]*inputArray[i+1]])

我还得到另一个错误:在调用中缺少参数'by'的参数 在线:

return multiplierArray.max()

感谢任何帮助,如果格式错误或有关此问题的任何其他内容,请随时纠正我!

1 个答案:

答案 0 :(得分:0)

func adjacentElementsProduct(inputArray: [Int]) -> Int {
    var multiplierArray = [Int]()

    for i in 0...(inputArray.count-1) {
        multiplierArray.append(inputArray[i] * inputArray[i+1])
    }
    return multiplierArray.max()!
}

修改

修正索引超出范围:)

func adjacentElementsProduct(inputArray: [Int]) -> Int {
    var multiplierArray = [Int]()

    for i in 0...(inputArray.count - 2) {
        multiplierArray.append(inputArray[i] * inputArray[i+1])
    }
    return multiplierArray.max()!
}

你的代码中的问题是你在迭代数组中的每个元素,并且你将数字乘以数组中的相邻数字。到达最后一个元素并尝试访问下一个元素而不检查它是否已从数组中删除。