Я решаю проблему с leetcode- https://leetcode.com/problems/minimum-absolute-difference/
Кажется, я не могу понять, почему в приведенном ниже коде список результатов неправильно добавляется после сброса в ноль. Конечно, я смотрел онлайн, но не мог понять концепцию такого поведения. Может кто-нибудь объяснить, почему после присвоения результата Nil, никакое значение не может быть добавлено в этот список? Как мне сбросить список? Я пробовал с ListBuffer
и clear()
, но у меня возникла та же проблема, в конце выполнения результат равен Nil
Ожидаемое поведение: Вход: arr = [4,2,1,3]
Выход: [[1,2],[2,3],[3,4]]
Фактическое поведение: ввод: arr = [4,2,1,3]
вывод: List()
def minimumAbsDifference(arr: Array[Int]): List[List[Int]] = {
val sortedInput = arr.sorted
var min = Integer.MAX_VALUE
var result = Seq[List[Int]]()
for(i <- 0 until sortedInput.length - 1){
val diff = sortedInput(i+1) - sortedInput(i)
if(min > diff){
result = Nil
min = diff
}
if(min == diff){
result :+ List(sortedInput(i),sortedInput(i+1))
}
}
result.toList
}