代码比较简单就不细说了
var testStr = 0
//模拟数组
let arr = [1,4,5,6,9,13,15,16,17,18]
MaxFn(str:4, arr: arr)
func MaxFn(str:Int,arr:Array<Int>) {
var list = [Int]()
for i in 0 ..< arr.count {
let el = arr[i]
//如果el等于要比较的数,那就复制return
if el == str {
testStr = el;
return
}
if el < str && el > testStr {
list.append(el)
testStr = el
}
}
testArr = list
if list.count != 1 {
MaxFn(str: str, arr: list)
}
}
还有一个通俗易懂的方法就是直接拿要比较值通过for循环,取出比当前值大和比当前值小的数字分别放进数组,然后将两个数组做降序或者升序排列,拿出对应的值做比较,也可以获得于当前值最接近的数