动态规划三大题型:计数问题、最值问题、存在性问题。
该题问可以称出多少种不同的重量,属于计数题型。
动态规划实现思路
从一个砝码开始,每个状态列举出当前可以被称出的重量;每次加入一个砝码,这时只需要将上一个状态的每个可以被称出的重量与新的砝码进行组合,即得出当前砝码数量可以被称出的所有重量;一直到最后一个砝码加入,最后一个状态就得出了所有可以被称出的重量
样例输入:3 1 4 6
加入第一个砝码1(状态1) 只能称出重量1
加入第二个砝码4 (状态2) 自身4可以称出 在1的状态1下更新1+4=5,4-1=3,就是1,3,4,5;
加入第三个砝码6 自身6可以称出 在状态2下更新1+6=7,6-1=5,3+6=9,6-3=3,4+6=10,6-4=2,5+6=11,6-5=1,就是1,2,3,4,5,6,7,9,10,11;
number =