我的dp,本地测试过了,但是也来不及提交,这是主要代码,返回每组数据的结果 static int[] solution(int[] w, int[] v, int V) { int len = w.length; int[] dp = new int[V + 1]; int left; int n; for(int i = 0; i < len; ++i) { for(int j = V; j >= w[i]; --j) { left = v[i]; n = 0; for(int k = 0; k < len; ++k) { if(k != i && left > 0) { ++n; left--; left += v[k]; } } dp[j] = Math.max(dp[j], n + 1); } } int[] ans = new int[2]; ans[1] = dp[V]; for(int i = 0; i <= V; ++i) { if(dp[i] == ans[1]) { ans[0] = i; break; } } return ans; }
点赞 评论

相关推荐

牛客网
牛客企业服务