Arrays 正在尝试查找kotlin数组中的最小数字

Arrays 正在尝试查找kotlin数组中的最小数字,arrays,kotlin,java.util.scanner,Arrays,Kotlin,Java.util.scanner,Kotlin新手,我在写一个程序,求N个数的最小值。 第一行包含数字N。 第二行包含由空格分隔的N个数字。 输出一个整数,它是N个数字中的最小值。 到目前为止,我得到了一个空错误,因此我知道问题在于向数组中添加数字。这是我的密码: fun main(args: Array<String>) { val scanner = Scanner(System.`in`) val num1: Int = scanner.nextInt() var nums = arr

Kotlin新手,我在写一个程序,求N个数的最小值。 第一行包含数字N。 第二行包含由空格分隔的N个数字。 输出一个整数,它是N个数字中的最小值。 到目前为止,我得到了一个空错误,因此我知道问题在于向数组中添加数字。这是我的密码:


fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val num1: Int = scanner.nextInt()
    var nums = arrayListOf<Int>()
    val smallestElement = nums.min()
    repeat (num1) {
        nums.add(scanner.nextInt())
    }
    println(smallestElement)

}

趣味主线(args:Array){
val scanner=扫描仪(系统.`in`)
val num1:Int=scanner.nextInt()
var nums=arrayListOf()
val smallestElement=nums.min()
重复(num1){
nums.add(scanner.nextInt())
}
println(smallestElement)
}
只需颠倒顺序即可:

fun main(args: Array<String>) {
    val scanner = Scanner(System.`in`)
    val num1: Int = scanner.nextInt()
    var nums = arrayListOf<Int>()
    repeat (num1) {
        nums.add(scanner.nextInt())
    }
    val smallestElement = nums.min()  // < ----------- here
    println(smallestElement)

}

fun main(args:Array){
val scanner=扫描仪(系统.`in`)
val num1:Int=scanner.nextInt()
var nums=arrayListOf()
重复(num1){
nums.add(scanner.nextInt())
}
val smallestElement=nums.min()
println(smallestElement)
}

java.util.Scanner
速度太慢,请考虑它在大多数情况下都是最佳的,并使用
系统。`.in`.bufferedReader().readLine()
速度最快,但通过创建缓冲区来增加堆

而获取
null
的原因是,您试图在空数组中获取最小值。在调用
ArrayList.min()
时,没有向其中添加任何元素

private fun readLn()=readLine()!!
private fun readInt()=readLn().toInt()
趣味主线(args:Array){
val num1:Int=readInt()
var nums=IntArray(num1){readInt()}
println(nums.min())
}
如果您不介意,您可以直接检查最小元素,而无需创建数组,而无需将所有数字存储到数组中,然后将所有元素与最小值进行比较:

private fun readLn()=readLine()!!
private fun readInt()=readLn().toInt()
趣味主线(args:Array){
val num1:Int=readInt()
var最小值=整数最大值
重复(num1){
val i=readInt()
如果(i
非常感谢您!我不知道为什么EduTools让我们在readline看起来如此优越的时候使用扫描仪。