LeetCode:Unique Binary Search Trees

来源:互联网 发布:好声音网络主播 编辑:程序博客网 时间:2024/06/06 02:25

Unique Binary Search Trees


Total Accepted: 70953 Total Submissions: 194911 Difficulty: Medium

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



















Discuss中一个评论:

/*    Hope it will help you to understand :    n = 0;     null       count[0] = 1    n = 1;      1           count[1] = 1     n = 2;    1__                    __2                       \                 /                                  count[1]       count[1]        count[2] = 1 + 1 = 2    n = 3;    1__                     __2__                    __3                  \                 /       \                 /                   count[2]        count[1]    count[1]      count[2]    count[3] = 2 + 1 + 2  = 5    n = 4;    1__                   __2__                      ___3___                                    \              /        \                   /       \                       count[3]       count[1]    count[2]         count[2]   count[1]                 __4                               /           count[3]       count[4] = 5 + 2 + 2 + 5 = 14     And  so on...*/


code:

class Solution {public:    int numTrees(int n) {        int count[n + 1];        for(int i=0;i <= n;i++) count[i] = 0;                count[0] = count[1] = 1;        for(int i=2;i<=n;i++)        for(int j=1;j<=i;j++)            count[i] += count[j-1]*count[i-j];        return count[n];    }};


0 0
原创粉丝点击