我在找一个程序来为给定的n对生成平衡括号。链接:https://leetcode.com/problems/generate-parentheses/ 对于解决方案,我发现在下面的代码中
public void P(List<String> list, int openB, int closeB, String output, int n) {
if (output.length() == 2 * n) {
list.add(output);
return;
}
if (openB < n) {
String op1 = output + "(";
// openB=openB + 1;
//P(list, openB, closeB, op1, n); using this is giving different output.
P(list, openB + 1, closeB, op1, n);
}
if (closeB < openB) {
String op2 = output + ")";
P(list, openB, closeB + 1, op2, n);
}
}
此处使用 openB=openB+1;
与在方法本身中传递值相比,给出的结果不同
1条答案
按热度按时间hfyxw5xn1#
好吧,当你经过的时候
openB + 1
作为一个论据,它不会改变当地的情况openB
变量。另一方面,当你openB = openB + 1
它确实改变了它的值,而且,因为我们稍后在方法(中)中使用它closeB < openB
分支),程序可能会有不同的行为。