标准的排序组合-算法

题目

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

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

相关推荐
wayz111 分钟前
Day 16:PCA主成分分析与降维
人工智能·算法·机器学习
熬夜敲代码的猫4 分钟前
C++继承:让你从入门到深入
c++·算法·继承
人道领域9 分钟前
【LeetCode刷题日记】239.滑动窗口最大值:单调队列解法(困难)
java·开发语言·算法
Irissgwe9 分钟前
优选算法精讲(专题一)
数据结构·算法
睡觉就不困鸭11 分钟前
第十五天 反转字符串
数据结构·算法
生物信息与育种14 分钟前
JIPB | 一个表观多组学整合分析与可视化工具OmicsCanvas
运维·人工智能·算法·自动化·transformer
AI人工智能+电脑小能手23 分钟前
【大白话说Java面试题】【Java基础篇】第17题:HashMap的加载因子为什么是0.75而不是1或0.5
java·开发语言·算法·哈希算法·散列表
谭欣辰32 分钟前
C++ 哈希表详解
c++·算法·哈希算法·散列表
shehuiyuelaiyuehao36 分钟前
算法11,滑动窗口,最大连续1的个数|||
算法·leetcode·职场和发展
南宫萧幕38 分钟前
车辆能量管理进阶:从前沿算法 (VMD-PPO-DBO) 机制解析到 MPC 工程建模
人工智能·算法·matlab·simulink·控制