=LET(a,D1:F11,t,E14:F14,b,DROP(a,1),f,LAMBDA(k,v,LAMBDA(n,IF(n,k,v))),c,REDUCE(VSTACK(f("",t-t)),MAP(TAKE(b,,1),BYROW(DROP(b,,1),LAMBDA(r,LAMBDA(r))),LAMBDA(k,v,f(k,v()))),LAMBDA(a,x,REDUCE(a,a,LAMBDA(a,y,IF(AND((x(0)+y(0))<=t),VSTACK(a,f(VSTACK(y(1),x(1)),y(0)+x(0))),a))))),d,MAP(c,LAMBDA(x,SUM(x(0)))),REDUCE(TAKE(a,1),FILTER(c,d=MAX(d)),LAMBDA(a,x,VSTACK(a,HSTACK(TEXTJOIN("+",,x(1)),x(0))))))
2025年12月24日 03点12分
11
数据量不大的话,可以试试这个,最坏情况只能求20个物品的组合,看实际数据什么样了,如果是一堆比较大的数凑比较小的值,物品数可以稍微多点,如果是一堆小数凑大数,可能就只支持20个物品了
2025年12月24日 03点12分
@龙游太虚cc 觉得哪个简单用哪个就行,条条大路通罗马
2025年12月24日 12点12分