给出一个整数数组,在数组中找到最接近给定数字K的组合。
let array = [1,4,6,23,12,16,32]
let K = 40
answer might be: [16, 23, 1] because they equal the number K of 40.
如果没有组合等于和,那么它应该返回最接近K的数组。
我发现了一些有关动态规划和子集和问题的信息,但是我发现现有的解决方案(https://www.geeksforgeeks.org/subarray-whose-sum-is-closest-to-k/)返回的最接近的和是K,而不是数组中的实际整数。求和时最接近。
我目前已经实现了天真的解决方案,该解决方案将遍历数组的所有组合。在保持运行总和的同时,如果循环中的当前组合总和更接近K,则将该组合设置为当前解。
天真的解决方案确实有效,但是我需要能够找到更大数组的解决方案,这会导致性能问题,因为天真的解决方案是O(n ^ 2)。