标准的排序组合-算法

题目

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

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

相关推荐
yyy(十一月限定版)6 小时前
ACM&OJ最终选拔赛
算法
啦啦啦_99996 小时前
1. 线性回归之 导数偏导数
算法·矩阵·线性回归
itzixiao7 小时前
L1-058 6翻了(15分)[java][python]
java·开发语言·python·算法
念何架构之路7 小时前
数组和切片实战
数据结构·算法·排序算法
重生之我是Java开发战士7 小时前
【数据结构】AVL树解析
数据结构·算法
小π军7 小时前
STL之multiset 常见API介绍
数据结构·c++·算法
研究点啥好呢7 小时前
Momenta算法工程师面试题精选:10道高频考题+答案解析
人工智能·算法·求职招聘·面试笔试
Resistance丶未来7 小时前
DeepSeek-V4 新手快速上手指南
数据结构·python·gpt·算法·机器学习·claude·claude 4.6
无限进步_7 小时前
【C++】寻找数组中出现次数超过一半的数字:三种解法深度剖析
开发语言·c++·git·算法·leetcode·github·visual studio
comli_cn7 小时前
HMM算法
线性代数·算法