标准的排序组合-算法

题目

有若干个字母,要求计算出长度为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();
    }
  }

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

相关推荐
一个专注写代码的程序媛14 分钟前
流式读取数据
java·数据结构·算法
Halo_tjn16 分钟前
Java Set集合知识点
java·开发语言·数据结构·windows·算法
小园子的小菜24 分钟前
深入理解Trie树:敏感词过滤的核心原理与实现思路
算法
Tisfy24 分钟前
LeetCode 2402.会议室 III:优先队列大模拟
算法·leetcode·题解·优先队列·排序·大模拟
byzh_rc27 分钟前
[算法设计与分析-从入门到入土] 基础算法
数据结构·算法·排序算法
2022.11.7始学前端29 分钟前
Dify第二节:AI 出题助手并写入飞书云文档
算法·工作流·dify
wuhen_n31 分钟前
LeetCode -- 349. 两个数组的交集(简单)
前端·javascript·算法·leetcode
Pyeako32 分钟前
机器学习--集成学习之随机森林&贝叶斯算法
python·算法·随机森林·机器学习·集成学习·贝叶斯算法
大头流矢34 分钟前
《数据结构·排序·进阶:希尔、堆、快排核心解析》——为何希尔是插入进阶?堆排序时间复杂度的关键?
c语言·数据结构·算法
睡醒了叭42 分钟前
图像分割-传统算法-聚类算法
opencv·算法·计算机视觉·聚类