本文主要是介绍leetcode - 96. Unique Binary Search Trees【卡特兰数 + 整数处理注意】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目
Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST's.
1 3 3 2 1\ / / / \ \3 2 1 1 3 2/ / \ \2 1 2 3
分析及解答
public int numTrees(int n) {//卡特兰数long result = 1;//防止在计算过程中,超出整数int的范围。for(int i = 0; i < n;i++){result = result * (2*n - i)/(i+1);//避免在除的过程因为有不能整除而造成的数的损失。(也避免long超出范围)}int r = Integer.parseInt(String.valueOf(result/(n+1)));//将long转为int.return r;}
这篇关于leetcode - 96. Unique Binary Search Trees【卡特兰数 + 整数处理注意】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!