我有3个文件夹,每个文件夹包含不同数量的文件。
Folder_#1:最长持续时间为170毫秒的音频文件。
Folder_#2:最小持续时间为170毫秒,最大持续时间为460毫秒的音频文件。
Folder_#3:最短持续时间为460毫秒的音频文件。
现在,我需要从三个文件中选择一个文件,以使它们的持续时间之和达到720毫秒,或者尽可能接近。
要求使用3个文件夹中的所有音频文件。
对此有什么好的算法?
尝试蛮力,计算机速度很快:(这只是伪代码)
best = float("inf")
res = None
for f1 in Folder_1:
for f2 in Folder_2:
for f3 in Folder_3:
dist = abs(f1.size + f2.size + f3.size - 720)
if dist < best:
best = dist
res = (f1, f2, f3)
return res
如果并且仅当不够快时,请尝试变得聪明。