![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
暴力递归
LXJ6379
Java入门小白
展开
-
暴力递归-完全背包
题目给定一组钱币,每张钱币可以使用任意张,求使用这些钱币能凑成价值K的方法数。例如[100,10,50]凑成1000。解题思路根据全排列的思想,求出所有钱币的组合,找出其中组合的价值为K的次数,即为所求。例如[100,10,50],K为10000 0 1 -只使用1张50,和为500 0 2 -使用2张50,和1000 0 3 -使用3张50,和150...0 0 20 -使用20张50,和1000 (找到一种解)0 1 0-只使用1张10元,和1...原创 2021-11-17 12:27:12 · 139 阅读 · 0 评论 -
暴力递归-机器人移动
题目在X轴上有N个点[1....N],有一个机器人初始在X轴上的P位置,机器人的目标是走到同样在X轴上的Q位置。机器人每次可以向左或向右走一个单位长度,但是机器人只能走K步,求机器人在K步之内是否能到达Q位置。解题思路根据全排列的思想,求出机器人走K步能够达到的所有位置,找出其中是否有Q位置即可。代码boolean rec(int N,int P,int Q,int index,int K){ if(K == 0){ if(index == Q){原创 2021-11-17 12:05:36 · 117 阅读 · 0 评论 -
暴力递归-01背包问题
题目给定一组物品和一个背包,每个物品有自己的价值和重量,背包的容量为K。每个物品只能使用一次,求背包容量下能装物品的最大价值。给定一组int[] values数组和int[] weight数组表示物品的价值和重量,给定K为背包容量。解题思路根据全排列的思想,求出所有物品的组合,找出其中的一种组合,该组合的重量之和小于等于背包容量且价值是所有组合中最大的。例如:电脑[6,6],手机[3,2],鞋子[2,4],背包容量K为7所有的组合为0 0 0 - 什么都不选,价值0,容量0原创 2021-11-17 11:45:11 · 854 阅读 · 0 评论 -
暴力递归-数字字符串转换为字母字符串
题目给定一个数字字符串,将它转换为字母字符串。如"111",可以转换为"AAA"或"AK"或"KA"。解题思路例如"198261",对于0位置的1,可以单独转换为A,或者结合9转换为S对于1位置的9,只能单独转换为I(大写字母i),不能结合之后的字母了对于2位置的8,只能单独转换为H,也不能结合之后的字母对于3位置的2,可以单独转换为B,或者结合6转换为Z对于4位置的6,只能单独转换为F,也不能结合之后的字母对于5位置的1,只能单独转换为A,因为之后没有字母了。原创 2021-11-17 11:25:26 · 347 阅读 · 0 评论 -
暴力递归-求全排列和无重复的全排列
题目一给定一个整数数组,求所有的全排列原创 2021-11-16 17:56:10 · 434 阅读 · 0 评论 -
暴力递归-求所有子序列及所有无重复子序列
题目一给定一个字符串,求所有的子序列解题思路对于字符串每个位置字符,选择添加或者不添加到结果串中,当遍历完字符串后将结果串放入到结果集中。每个位置都有2个选择,所以时间复杂度为O(2^N)代码List<String> res = new ArrayList<>();void rec(String s,int index,String temp){ if(index == s.length()){ res.add(temp);原创 2021-11-16 17:51:40 · 780 阅读 · 0 评论