第二题:public static void main(String[] args) { Scanner in = new Scanner(System.in); int goodsNum = in.nextInt(); int bag = in.nextInt(); int[] goodsWei = new int[goodsNum]; int[] goodsVal = new int[goodsNum]; for (int i = 0; i < goodsNum; i++) { goodsWei[i] = in.nextInt(); } for (int i = 0; i < goodsNum; i++) { goodsVal[i] = in.nextInt(); } System.out.println(findMaxVal(goodsWei, goodsVal, 0, bag)); } private static int findMaxVal(int[] goodsWei, int[] goodsVal, int index, int bag) { if (bag < 0) { return -1; } if (index >= goodsVal.length) { return 0; } int v1 = findMaxVal(goodsWei, goodsVal, index + 1, bag); int v2 = findMaxVal(goodsWei, goodsVal, index + 1, bag - goodsWei[index]); int v3 = 0; if (v2 != -1) { v3 = goodsVal[index] + v2; } return Math.max(v1, v3); }
点赞 评论

相关推荐

政委qqq:这道题在算法竞赛里唯一考的就是高精度,但是只能难住C++这类语言,Python直接a+b秒天秒地
点赞 评论 收藏
分享
牛客28967172...:跟着卡子哥才是正道,灵茶属实不太行
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务