dfs算法中求数列的组合

Posted Ambition

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dfs算法中求数列的组合相关的知识,希望对你有一定的参考价值。

/*

从13个书中挑选5个值,他们的组合可能是 什么,

如下代码

dfs深度遍历, 和全排列是一种方法,但是思路不同

*/

public class Main {
static int count = 0;
static int a[] = new int[6];
public static void main(String[] args) {
boolean visit[] = new boolean[13];
dfs(a,visit,1);
System.out.println(count);
}

private static void dfs(int[] a, boolean[] visit, int num) {
if (num==6) {
count++;
return ;
}
for (a[num] = a[num-1]+1; a[num] < 13; a[num]++) { //根排列算法不同的是这里不是 a[num]=1
if (visit[a[num]]==false){
visit[a[num]]=true;
num = num + 1;
dfs(a, visit, num);
num = num - 1;
visit[a[num]] = false;
}
}
}
}

以上是关于dfs算法中求数列的组合的主要内容,如果未能解决你的问题,请参考以下文章

构造数列 迭代加深dfs

动态规划法从斐波那契数列谈起

动态规划法从斐波那契数列谈起

斐波那契数列的介绍?

从无序序列中求这个序列排序后邻点间最大差值的O(n)算法

[考试] 组合数,数列