标准的排序组合-算法

题目

有若干个字母,要求计算出长度为4的所有可能得组合

解题

排序组合最适用的就是回溯了,建议大家本地debug一层一层的看能好理解点

复制代码
private static void getResult(List<String> source, Stack<String> temp, int curLength, int maxLength, List<Stack<String>> result) {
    if (curLength == maxLength) {
      result.add((Stack<String>) temp.clone());
      return;
    }
    for (int i = 0; i < source.size(); i++) {
      if (temp.contains(source.get(i))) {
        continue;
      }
      temp.push(source.get(i));
      getResult(source, temp, curLength + 1, maxLength, result);
      temp.pop();
    }
  }

回溯之所以叫回溯,就是因为他是从尾巴的地方先遍历所有的可能性,然后再往上一层,当然了上一层遍历时还需要再往下一层检查所有的可能性

相关推荐
陈天伟教授几秒前
人工智能应用- 材料微观:03. 微观结构:纳米金
人工智能·神经网络·算法·机器学习·推荐算法
孞㐑¥11 分钟前
算法—穷举,爆搜,深搜,回溯,剪枝
开发语言·c++·经验分享·笔记·算法
宇木灵24 分钟前
C语言基础-九、动态内存分配
c语言·开发语言·学习·算法
追随者永远是胜利者29 分钟前
(LeetCode-Hot100)301. 删除无效的括号
java·算法·leetcode·职场和发展·go
追随者永远是胜利者33 分钟前
(LeetCode-Hot100)239. 滑动窗口最大值
java·算法·leetcode·职场和发展·go
im_AMBER36 分钟前
Leetcode 126 两数之和 II - 输入有序数组 | 盛最多水的容器
数据结构·学习·算法·leetcode
lxl13071 小时前
C++算法(5)位运算
java·c++·算法
tankeven1 小时前
HJ96 表示数字
c++·算法
嵌入式×边缘AI:打怪升级日志1 小时前
C语言算术赋值运算复习笔记
c语言·stm32·单片机·算法·51单片机·proteus·代码
lxl13071 小时前
C++算法(4)前缀和
开发语言·c++·算法