arrays - 如何找到数组中最小的数字?

标签 arrays swift

<分区>

我正在编写一个算法来查找数组中的最小数字,但是我的打印语句一直说最小数字是 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"

我觉得算法是正确的。有什么想法吗?

编辑:回答了我自己的问题

我正在迭代索引而不是实际值。感谢评论中的一位用户。正确的代码应该是:

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)

最佳答案

简单

let list = [5, 4, 3, 5, 2, 50, 8, 10, 300]
let minValue = list.min()

关于arrays - 如何找到数组中最小的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43012975/

相关文章:

python - 如何将 float 组更改为字符串数组,然后保存到txt

Java:使用第一个数组的前 3 个整数,然后使用第二个数组的 3 个整数,将 2 个数组组合成第三个数组

ios - 尽管受到限制,为什么导航栏顶部和安全区域顶部之间仍然存在空间?

json - id 解码 JSON 时找不到 key

Swift 将命令传递到 jar 文件中

arrays - 解析服务器发送的数组/slice

javascript - 如何在 AngularJs 中将 json 数组转换为 js 数组?

javascript - 在 Google 电子表格中声明全局数组

ios - 无法将类型 X 的值转换为预期的参数类型 XX

ios - 如何按总线编号 (buses.number) 对总线对象数组进行排序?