Commit 38026629 zshaohui

odn出库 挑料逻辑提交

1 个父辈 0b074730
package com.neotel.smfcore.core.order.util;
import java.util.ArrayList;
import java.util.List;
public class CombinationUtil {
private static void backtrack(List<Integer> numbers, int targetSum, int start, List<Integer> current, List<List<Integer>> combinations, boolean used[]) {
if (targetSum == 0) {
combinations.add(new ArrayList<>(current));
return;
}
if (targetSum < 0 || start >= numbers.size()) {
return;
}
for (int i = start; i < numbers.size(); i++) {
// 如果不允许重复使用数字,并且当前数字已经被使用过,则跳过
if (used != null && used[i]) {
continue;
}
// 选择当前数字
current.add(numbers.get(i));
// 如果不允许重复使用数字,则标记当前数字为已使用
if (used != null) {
used[i] = true;
}
// 递归调用,继续查找剩余的数字
backtrack(numbers, targetSum - numbers.get(i), i + 1, current, combinations, used);
// 回溯,移除当前选择的数字
current.remove(current.size() - 1);
// 如果不允许重复使用数字,则取消标记
if (used != null) {
used[i] = false;
}
}
}
// 如果不允许重复使用数字,可以使用以下版本的findCombinations方法
public static List<List<Integer>> findCombinationsWithoutDuplicates(List<Integer> numbers, int targetSum) {
boolean[] used = new boolean[numbers.size()];
return findCombinations(numbers, targetSum, used);
}
// 带有used数组的findCombinations方法
private static List<List<Integer>> findCombinations(List<Integer> numbers, int targetSum, boolean[] used) {
List<List<Integer>> combinations = new ArrayList<>();
backtrack(numbers, targetSum, 0, new ArrayList<>(), combinations, used);
return combinations;
}
}
...@@ -1338,4 +1338,12 @@ public class TaskService { ...@@ -1338,4 +1338,12 @@ public class TaskService {
public void outTaskStatusChange(List<DataLog> dataLogList) { public void outTaskStatusChange(List<DataLog> dataLogList) {
smfApi.outTaskStatusChange(dataLogList); smfApi.outTaskStatusChange(dataLogList);
} }
public Collection<DataLog> batchSave(List<DataLog> dataLogList) {
Collection<DataLog> dataLogs = dataLogDao.insertAll(dataLogList);
for (DataLog task : dataLogs) {
taskMap.put(task.getId(), task);
}
return dataLogs;
}
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!