g*******y 发帖数: 1930 | 1 November 07
学习了backtrack(回溯法)
之前做了一些回溯的题,比如打印permutation,打印任意n对括号等等,都是瞎蒙的。
还真凑巧,上午做了打印n括号的题,下午就看见有人说到回溯法,想想自己还没系统
学过这个,找了本基础的中文算法书来看了看,虽然书上讲的很浅显,发现自己貌似瞎
蒙还蒙对了思路,呵呵。正好凑巧的是,刚刚看了一点点,网上就有个人问怎么做
Vertex Cover的问题,正好让我来做做练习。
1. 打印任意合法的n对括号:
void printParenthes(int N, int left, int right, stack &stk){
if(left == N && right == N){
printStack(stk);
return;
}
if(left>right){
stk.push(')');
printParenthes(N, left,right+1, stk);
stk.pop();
}
if | w********p 发帖数: 948 | | h********0 发帖数: 440 | | Y**********l 发帖数: 104 | 4 Cooool!
Thanks
【在 g*******y 的大作中提到】 : November 07 : 学习了backtrack(回溯法) : 之前做了一些回溯的题,比如打印permutation,打印任意n对括号等等,都是瞎蒙的。 : 还真凑巧,上午做了打印n括号的题,下午就看见有人说到回溯法,想想自己还没系统 : 学过这个,找了本基础的中文算法书来看了看,虽然书上讲的很浅显,发现自己貌似瞎 : 蒙还蒙对了思路,呵呵。正好凑巧的是,刚刚看了一点点,网上就有个人问怎么做 : Vertex Cover的问题,正好让我来做做练习。 : 1. 打印任意合法的n对括号: : void printParenthes(int N, int left, int right, stack &stk){ : if(left == N && right == N){
|
|