题解 | #称砝码#

称砝码

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

import java.io.*;
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = br.readLine()) != null) {
            int n = Integer.parseInt(str);
            String[] arr1 = br.readLine().split(" ");
            String[] arr2 = br.readLine().split(" ");
            int[] weights = new int[n];
            int[] nums = new int[n];
            for (int i = 0; i < n; i++) {
                weights[i] = Integer.parseInt(arr1[i]);
            }
            for (int i = 0; i < n; i++) {
                nums[i] = Integer.parseInt(arr2[i]);
            }

            HashSet<Integer> set = new HashSet<>();
            set.add(0);
            for (int i = 0; i < n; i++) { //循环砝码种数
                ArrayList<Integer> list = new ArrayList<>(set);
                for (int j = 1; j <= nums[i]; j++) { //遍历砝码的个数
                    for (int k = 0; k < list.size(); k++) {
                        set.add(list.get(k) + weights[i] * j);
                    }
                }
            }
            System.out.print(set.size());
        }
    }
}

全部评论

相关推荐

11-26 09:30
复旦大学 Java
点赞 评论 收藏
分享
算法冲刺中:kpi面加一,面完完全没动静,感谢信都没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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