明天Java上机考试,今天初学Java,今日成果:
1. 学会了Java的输入输出,明天考试,未来可期。
2. 在函数中,i++、++i和i+1都是表示执行加1操作,但它们有着不同的作用。
题目描述
有效的括号组合表示为,对于每一个“(”在它的右侧都已一个对应的“)”,同时对于每一个“)”在它的左侧都有一个对应的“(”。
现给定括号的对数n,请使用回溯算法的思路求出所有有效的括号组合数量。
输入第一行为一个整数n,表示括号的对数。
样例输入输出
样例1
输入:
3
输出:
5
样例2
输入:
1
输出:
1
import java.util.Scanner;
public class Main{
static int sum = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int left = 0;
int right = 0;
BackTrack(n, left, right);
System.out.println(sum);
}
public static void BackTrack(int n, int left, int right) {
if (left == n && right == n)
{
sum++;
return;
}
if (left < n)
BackTrack(n, left + 1, right);
if (right < left)
BackTrack(n, left, right + 1);
return;
}
}