public static void maxtValue(int[] nums, Deque<Integer>[] deques, int remianNums, int[] sum, int[] current) { //剪枝 if (remianNums == 0) { sum[0] = Math.max(sum[0], current[0]); return; } for (int i = 0; i < deques.length; i++) { if (deques[i] != null && deques[i].size() != 0) { Integer first = deques[i].removeFirst(); current[0] += first; //递归 maxtValue(nums, deques, remianNums - 1, sum, current); //回溯 current[0] -= first; deques[i].addFirst(first); Integer last = deques[i].removeLast(); current[0] += last; maxtValue(nums, deques, remianNums - 1, sum, current); current[0] -= last; deques[i].addFirst(last); } } }
点赞 1

相关推荐

牛客网
牛客企业服务