算法
福自奇
热爱技术
展开
-
n个字符排列组合问题之一(包含重复字符)
参考链接: http://www.cnblogs.com/cxjchen/p/3932949.html思路:1,选位置:n个位置中先选m1个位置放重复字符C(n,m1),C(n-m1,m2)…,剩下p个位置放不重复的字符 A(p,p)2, 直接选元素:A(n,n)/A(m1,m1)/A(m2,m2)...原创 2019-03-20 09:50:27 · 1388 阅读 · 0 评论 -
不相交(任意两个集合之间没有交集)集,并查集(合并,查询集合)
union(x,y)是指将包含x和y的动态集合(比如说Sx和Sy)合并为一个新的集合(即这两个集合的并集),而不是简单的把两个元素合并成一个集合,而是把两个元素所在的集合合并成一个新集合。合并两个不相交集合操作很简单:利用FIND-SET找到其中两个集合的祖先,将一个集合的祖先指向另一个集合的祖先即可。...原创 2020-07-28 20:45:44 · 5187 阅读 · 0 评论 -
兑换零钱最少张数,每种零钱无数个,通过
You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money ...原创 2019-03-13 12:31:38 · 739 阅读 · 0 评论 -
找零钱方案的组合数,每种钱无限多,已通过
1, int change(int amount, vector<int>& coins) { int *dp=new int[amount+1](); dp[0]=1;//相当于用0种硬币兑换0元的方案数,什么都不给,所以一种方案 for(int i=0;i<coins.size();++i) ...原创 2019-03-13 11:29:25 · 1033 阅读 · 0 评论 -
找零钱所需最少张数
#include<iostream>#include<vector>#define INF 10000000;using namespace std;int changes(int a[],int len,int value){ int **dp=new int*[len+1]; for(int i=0;i<=len;++i)原创 2018-08-02 09:19:50 · 1899 阅读 · 0 评论 -
找零钱方案总数
#include<iostream>#include<vector>using namespace std;int changes(int a[],int len,int value){ int **dp=new int*[len+1]; for(int i=0;i&原创 2018-08-01 21:21:04 · 792 阅读 · 0 评论 -
双数组trie树
原文 http://blog.jqian.net/post/trie.htmlTrie树的数组实现原理Posted on 2009-04-04 | 0Trie(Retrieval Tree)又称前缀树,可以用来保存多个字符串,并且非常便于查找。在trie中查找一个字符串的时间只取决于组成该串的字符数,与树的节点数无关。因此,它的查找速度通常比二叉搜索树更快。trie的结构很简单,每条边表...转载 2019-03-29 14:56:18 · 669 阅读 · 0 评论 -
字符串全排列去重思想
https://www.cnblogs.com/cxjchen/p/3932949.html去重思想:不是将要交换的两个字符相同(str[begin]与str[i]相同)就不交换,而是如果前面有相同的字符出现(与begin位置交换过)过,那么就不交换。...原创 2019-09-10 22:19:35 · 221 阅读 · 0 评论