我想寫值的列表中返回最接近值的算法。因此,在一個列表(4.0,6.0,2.0)的最接近值7.0 6.0如何找到最接近值列表的價值?
下面是我使用的代碼,但作爲返回最接近的值是不正確的是4:
如何解決下面的代碼或者是否有我可以用來解決這個問題的Scala實用程序方法?
val num = 7.0 //> num : Double = 7.0
val listNums = List[Double](4,6,2) //> listNums : List[Double] = List(4.0, 6.0, 2.0)
def getClosest(num : Double , listNums : List[Double]) = {
var min = java.lang.Double.MAX_VALUE
var closest = num
for(x <- listNums){
val diff = x - num
if(num < min){
min = diff
closest = x
}
}
closest
} //> getClosest: (num: Double, listNums: List[Double])Double
val closest = getClosest(num , listNums) //> closest : Double = 4.0
只是一個查詢對此。如果列表像這樣listNums = List [Double](4,6,2,8)會怎麼樣?現在6和8都是最接近的! –
@Anuj Mehta我只希望第一個匹配的被退回 –