题解 | #称砝码#,看了别人的才知道可以这么玩,有意思

称砝码

http://www.nowcoder.com/practice/f9a4c19050fc477e9e27eb75f3bfd49c

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            int[] g = new int[n];
            for (int i = 0; i < g.length; i++) {
                g[i] = in.nextInt();
            }
            int[] number = new int[n];
            for (int i = 0; i < number.length; i++) {
                number[i] = in.nextInt();
            }
            HashSet<Integer> set = new HashSet<>();
            set.add(0);
            // 遍历砝码
            for (int i = 0; i < g.length; i++) {
                ArrayList<Integer> list = new ArrayList<>(set);
                // 遍历个数
                for (int j = 1; j <= number[i]; j++) {
                    // 从一个砝码往上加
                    for (int k = 0; k < list.size(); k++) {
                        // 每个数量的砝码都会去匹配
                        set.add(list.get(k) + g[i] * j);
                    }
                }
            }
            System.out.println(set.size());
        }
    }
}
全部评论

相关推荐

07-22 11:53
门头沟学院 Java
终于有一个保底的offer了,但感觉是白菜价
北凝a:我想问问,提前批的offer 有问你啥时候到岗吗,如果你还想找其他的怎么办
点赞 评论 收藏
分享
点赞 评论 收藏
分享
盖茨伯爵:一样兄弟,我从4月开始发到现在了,都三四百个了
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务