比如说给你一个字符串"dfadcdcad",让你排列出所有的子串,比如说df就是,dc也是,如果子串中有重复,可以打印出,因为题目如果说改成不能有重复,改成hashset即可,子串可以有间隔,这又是一个要与不要的问题,和0-1背包很像,但是0-1背包要返回最大价值,所以在细节处理上有些区别。要与不要的问题核心都是有一个index伴随递归的开始到结束,这就体现了暴力递归的思想。

public static void main(String[] args) {List<String> res = new ArrayList<>();String a = "dsfdsf";printAllSub(a,res);for (String re : res) {System.out.println(re);}}private static void printAllSub(String a, List<String> res) {char[] sChars = a.toCharArray();process(sChars,0,res,"");}private static void process(char[] cStr, int index, List<String> res, String path) {if (index==cStr.length){res.add(path);//加完以后直接返回return;}process(cStr,index+1,res,path);//不要这个字符串process(cStr,index+1,res,path+cStr[index]);//要这个字符串}

排列出所有子串暴力递归相关推荐

  1. 算法入门篇九 暴力递归

    牛客网 左程云老师的算法入门课 暴力递归 原则  汉诺塔问题 问题 打印n层汉诺塔从左边移动到最右边的过程 思想 一共六个过程,左到右.左到中,中到左,中到右,右到左,右到中,互相嵌套使用 左到右 将 ...

  2. 算法与数据结构——算法基础——暴力递归(回溯)(java)(左程云b站课程总结)

    暴力递归 暴力递归就是尝试 类似于回溯:可以理解为回溯就是在暴力递归的基础上在每个操作步骤加上标记和取消标记的处理 把问题转化为规模缩小了的同类问题的子问题 有明确的不需要继续进行递归的条件(base ...

  3. 数据结构与算法之暴力递归改动态规划

    数据结构与算法之暴力递归改动态规划 目录 二维数组最小路径和 暴力递归改动态规划解析 任意选择数组arr中的数字,看能不能累加得到aim 1. 二维数组最小路径和 (一) 题目描述 (二) 思路 递归 ...

  4. leetcode 174. Dungeon Game | 174. 地下城游戏(暴力递归->傻缓存->dp)

    题目 https://leetcode.com/problems/dungeon-game/ 题解 方法1:4个参数的递归+缓存,TLE 今日结论:转换成dp之前,递归的参数设计很重要,参数越少越好 ...

  5. 排列与组合的Java递归实现 (参考)

    我们在笔试面试过程中经常会遇到关于排列与组合的问题,其实这些可以通过递归简单的实现,看下面两个例子: (1)关于字符串排列的问题 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc, ...

  6. 暴力递归转动态规划----以货币数问题展开

    接着上道题,这道题也是用来感受暴力递归优化成动态规划的套路.先想暴力尝试的方法,然后优化成动态规划.首先是原问题的暴力尝试方法.只有想出尝试方法是最难.最重要的. 我们首先来看一下题目: 给你一个数组 ...

  7. 从贪心算法到暴力递归法——从局部最优到整体最优

    从递归看动态规划 前情提要 最优问题的本质 目标函数 最优组合的求解策略 枚举 递归 斐波那契数列 问题描述 示例 解题思路 迭代 递归 深入理解递归 堆栈与递归的状态存储 递归与回溯 树形结构与深度 ...

  8. 带你击杀动态规划梦魇-从暴力递归到动态规划

    本文章欢迎转载,但是转载请标明出处,程序锋子https://blog.csdn.net/l13591302862/article/details/111410091 想要分享下自己之前学习动态规划的过 ...

  9. 算法设计与分析 暴力递归

    暴力递归 概述 题目一:汉诺塔问题 题目二:字符串的全部子序列问题 题目三:字符串的全排列问题(分支限界) 题目四:拿纸牌比最大问题 题目五:递归逆序栈 题目六:数字与字符串的转化问题 题目七:重量和 ...

最新文章

  1. python 继承和多态
  2. 【STM32】标准外设库,系统架构,时钟系统
  3. C#计算两个时间的差
  4. springmvc相关配置和用法
  5. 微信小程序部分功能介绍和实现
  6. php采集分页数据,如何通过php+wordpress实现分页获取数据
  7. 数据结构与算法深入学习_我最喜欢的免费课程,用于深入学习数据结构和算法...
  8. 对称加密 与 非对称加密
  9. app 缓存html页面,HTML5本地存储VS App缓存离线网站浏览
  10. hⅰgh怎么读音发音英语_gh的发音规律
  11. Linux学习(5)Linux用户管理、用户组管理
  12. FirstApp,iphone开发学习总结3,UIButton简单的操作
  13. 天数怎么换算成月_小时天数换算(小时换算成天数怎么算)
  14. 1、Struts2基本入门
  15. 利用遗传算法GA和粒子群算法PSO优化算法,将BP神经网络训练集的MSE作为适应度函数
  16. 素数的线性筛 欧拉函数
  17. Nobody gives away anything valuable for free.
  18. Python|猜球博弈
  19. iphone 打开safari调试
  20. IC卡·一卡一密加密 动态数据防伪方案实现

热门文章

  1. Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上
  2. HDOJ 1443 约瑟夫环的最新应用
  3. 开机出现grub界面(待尝试)
  4. c/c++拷贝构造函数和关键字explicit
  5. springmvc框架自带的异常处理器SimpleMappingExceptionResolver的使用
  6. java--杨辉三角
  7. 10种CSS3实现的Loading效果
  8. 从一个C程序学“逐步求精”的分析方法
  9. [译] APT分析报告:04.Kraken - 新型无文件APT攻击利用Windows错误报告服务逃避检测
  10. 【数据结构与算法】之深入解析“路径总和II”的求解思路与算法示例