推 KennyL:或許可以用array_chunk切割,再用array_map計算? 沒細想^^" 03/26 21:39
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.95.121
是這樣的
我在陣列裡面放了100個數字(亂數)
例如: 25、35、40、37、28、44...等
現在是想將這些數字篩選出來,三個三個成為一組
每一組的總和會最接近且小於100
(而如果有剩餘的數字,則就單獨成為一組)
想請問這樣有沒有比較合適的算法呢?
我想到是把
array[0]+array[1]+array[2]
array[0]+array[1]+array[3]
array[0]+array[1]+array[4]
...
...
array[0]+array[2]+array[3]
array[0]+array[2]+array[4]
...
...
array[99]+array[98]+array[97]
這些全部計算出來,然後做排序,抓取最接近且小於100的出來
例如是array[0]+array[51]+array[80]
然後把這三個當作第一組,接著將這三個數字剔除掉
然後進入下一輪,按照上面的方式繼續加總計算,然後排序比較
....
這樣似乎相當花費時間,況且數字如果更多時,感覺會相當恐怖
因此想請問有沒有比較好的計算方式呢?
謝謝大家:)
--