面试题:从给定的N个正数中选取若干个数之和最接近M
解法为背包:分2种情况如果N个正数全部比M打的话,直接取最小值即可;否则先背包求一遍和比M小的最大值,即为S,然后再背包求一下和比M+M-S小的最大值,然后两者中更接近M的即为所求。证明仔细想想也是显然的。
面试题:从给定的N个正数中选取若干个数之和最接近M
解法为背包:分2种情况如果N个正数全部比M打的话,直接取最小值即可;否则先背包求一遍和比M小的最大值,即为S,然后再背包求一下和比M+M-S小的最大值,然后两者中更接近M的即为所求。证明仔细想想也是显然的。