zoukankan      html  css  js  c++  java
  • [LeetCode] 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

    一般只求结果的数量而不要求所有可能的解就可能用DP来解决了,f[i][j] = sum(f[i][k-1] * f[k+1][j]); i <= k <= j
     1 class Solution {
     2 private:
     3     int f[1000][1000];
     4 public:
     5     int getF(int beg, int end)
     6     {
     7         if (beg > end)
     8             return 1;
     9             
    10         return f[beg][end];
    11     }
    12     
    13     int numTrees(int n) {
    14         // Start typing your C/C++ solution below
    15         // DO NOT write int main() function
    16         for(int i = 0; i < n; i++)
    17             f[i][i] = 1;
    18             
    19         for(int len = 2; len <= n; len++)
    20             for(int beg = 0; beg < n; beg++)
    21             {
    22                 int end = beg + len - 1;
    23                 if (end >= n)
    24                     break;
    25                 
    26                 f[beg][end] = 0;
    27                 for(int mid = beg; mid <= end; mid++)
    28                     f[beg][end] += getF(beg, mid - 1) * getF(mid + 1, end);
    29             }
    30             
    31         return f[0][n-1];
    32     }
    33 };
  • 相关阅读:
    寒假学习10
    寒假学习9
    寒假学习8
    寒假学期7
    寒假学习6
    寒假学习5
    寒假学习4
    Notification通知栏的使用
    Service的使用
    BroadcastReceive的使用
  • 原文地址:https://www.cnblogs.com/chkkch/p/2777704.html
Copyright © 2011-2022 走看看