【发布时间】:2017-03-25 05:39:18
【问题描述】:
我正在编写一个算法来查找数组中的最小数字,但是我的打印语句一直说最小数字是 0。我有以下内容:
var list = [5, 4, 3, 5, 2, 50, 8, 10, 300]
func findMin(numbers: NSArray) {
var minValue = numbers[0]
var isSmallest: Bool
for i in 0...numbers.count {
isSmallest = true
for j in 0...numbers.count {
if i > j {
isSmallest = false
}
}
if isSmallest {
minValue = i
}
}
print("Smallest value in the list is \(minValue)")
}
findMin(numbers: list as NSArray)
我的打印语句返回为:
"Smallest value in the list is 0\n"
我觉得算法是正确的。有什么想法吗?
编辑:回答了我自己的问题
我正在迭代索引而不是实际值。感谢 cmets 中的一位用户。正确的代码应该是:
var list = [5, 4, 3, 5, 2, 50, 8, 10, 300]
func findMin(numbers: NSArray) {
var minValue = numbers[0]
var isSmallest: Bool
for i in list {
isSmallest = true
for j in list {
if i > j {
isSmallest = false
}
}
if isSmallest {
minValue = i
}
}
print("Smallest value in the list is \(minValue)")
}
findMin(numbers: list as NSArray)
【问题讨论】:
-
你想用哪种语言来做这个?
-
它能给你正确的答案吗?
-
@ArjunBhoot 斯威夫特
-
您正在比较索引而不是数组值。