题目解析
本题是一道求组合问题。可以利用回溯算法求解。
本题求组合时有如下要求:
- 组合元素个数 ≥ 密码最小数字数量(第二个输入)
- 组合内元素需要按照数值大小升序
- 组合不重复(树层去重)
输出时:
- 如果有多个组合,则多个组合需要按照字典序升序
- 如果没有组合,输出"None"
另外本题没有说明输入的数字是否为单位数,因此需要考虑多位数情况。
Java算法源码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
static int[] nums;
static int level;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
nums = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).t