题解 | #称砝码# new Set()
称砝码
https://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void async function () { // Write your code here while(await readline()) { let m = (await readline()).split(' ').map(Number) let x = (await readline()).split(' ').map(Number) let res = new Set([0]) for (let i=0; i<m.length; i++) { for (let j=0; j<x[i]; j++) { let tmp = [...res] tmp.forEach(el => { let w = el + m[i] res.add(w) }) } } console.log(res.size) } }()
思路是,初始化一个Set,元素是0,然后每碰到一个数就对当前Set的每个元素加这个新碰到的数,Set可以自动去重