swift - 标准输出 HackerRank Swift 没有响应
问题描述
您好,我使用 swift 在hackerRank 上练习,现在我遇到了问题。我的代码在 swift playground 中运行良好,并返回了预期的结果,但是在 HackerRank 中我遇到了运行时错误 ~ no response on stdout ~
,我尝试重置代码并刷新页面。可能是什么问题呢?
func diagonalDifference(arr: [[Int]]) -> Int {
// Write your code here
let rowNumber = arr[0][0]
var leftD = 0
var rightD = 0
for i in 1...rowNumber {
leftD += arr[i][i - 1]
}
var increasedNum = 0
for i in (1...rowNumber).reversed() {
rightD += arr[i][increasedNum]
increasedNum += 1
}
var absoluteDifference = leftD - rightD
if absoluteDifference < 0 {
absoluteDifference = absoluteDifference * -1
}
return absoluteDifference
}
这是挑战页面:
https://www.hackerrank.com/challenges/diagonal-difference/problem
解决方案
您的问题是对传递给您的diagonalDifference()
函数的内容有误解。调用该函数的代码使用输入的第一行来正确调整数组的大小,但该值不会传递给arr[0][0]
. 相反,您应该使用arr.count
来确定数组的维度,然后您应该将数组索引为0..<arr.count
.
修复您的代码
改变:
let rowNumber = arr[0][0]
至:
let rowNumber = arr.count
改变:
leftD += arr[i][i - 1]
至:
leftD += arr[i][i]
并更改两个实例
1...rowNumber
至:
0..<rowNumber
推荐阅读
- docker - ModuleNotFoundError:没有名为“clx”的模块
- generics - SwiftUI 通用数组模型
- javascript - 如何使 AllDaySlot 不与我的弹出窗口重叠?
- questdb - 如何为 QuestDB 中的每个字段查询不同的行?
- python - 查找所有可能的对并存储在列表列表中
- javascript - 遍历对象列表并转换为具有嵌套对象列表的对象
- groovy - 仅在最后一根蜡烛上尝试移动平均线
- machine-learning - 如何使用 mobilenet 作为高分辨率图像的特征提取器?
- python - 使用python返回链接值
- c# - 检索外部银行账户时无法从 Stripe 获取或解析外部银行账户信息