gpt4 book ai didi

swift - 找到最近的最长组合

转载 作者:行者123 更新时间:2023-11-28 08:21:56 26 4
gpt4 key购买 nike

我有一个包含整数 [1, 2, 3, 7, 13, 11, 4] 和一个整数值 12 的数组。我需要返回新数组中整数值之和的最接近组合的数组.

例如:[1, 2, 3, 7, 13, 11, 4] 的值为 12。需要返回的数组是 [1, 2, 3, 4],因为元素 1 + 2 + 3 + 4 <= 12。这是最长的数组,优于 [1, 7, 4] 1 + 7 + 4 = 12。

最佳答案

如果数组中没有重复的数字,则此解决方案有效。

var array = [1, 2, 3, 7, 13, 11, 4, -12, 22, 100]
print(array.sorted())
let value = 19

func close(array: [Int], value: Int) -> (Int , Int) {
let sortedArray = array.sorted()
var lastNumberBeforValue = sortedArray.first!
for (index,number) in sortedArray.enumerated() {
let sub = value - number
if sub > 0 {
lastNumberBeforValue = number
}
if sortedArray.contains(sub) && sub != number {
return (sub, number)
} else if index == sortedArray.count - 1 {
if sub < 0 {
let near = close(array: array, value: value - lastNumberBeforValue)
return (near.0, lastNumberBeforValue)
}
let near = close(array: array, value: sub)
return (near.0, number)
}
}
return (-1,-1)
}

let numbers = close(array: array, value: value)
print(numbers) //prints (4, 13)

关于swift - 找到最近的最长组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41047919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com