BSTs
SRM 132 · 2003-02-01 · by brett1479
SRM 132 · 2003-02-01 · by brett1479
Problem Statement
Problem Statement
In a binary tree every node has an optional left, and optional right child node.
A BST(binary search tree) is a binary tree that satsifies the following properties:
1) Every node has a unique VALUE
2) The VALUE at a given node must be greater than the VALUE at every node in its left subtree
3) The VALUE at a given node must be less than the VALUE at every node in its right subtree
A set of VALUEs can have multiple BSTs associated with it depending on how the nodes are arranged. For example:
values = {3,2,1}int[] values, and returns an int that represents the
number of distinct possible BSTs resulting from the given set of values.
1) Every node has a unique VALUE
2) The VALUE at a given node must be greater than the VALUE at every node in its left subtree
3) The VALUE at a given node must be less than the VALUE at every node in its right subtree
A set of VALUEs can have multiple BSTs associated with it depending on how the nodes are arranged. For example:
values = {3,2,1}
1 | 1 | 2 | 3 | 3
\ | \ | / \ | / | /
2 | 3 | 1 3 | 2 | 1
\ | / | | / | \
3 | 2 | | 1 | 2
The set {3,2,1} has 5 possible BSTs shown above. Two BSTs are different if they differ in the position of at least one VALUE.
Given a set of VALUEs you will determine how many BSTs are possible.
Create a class BSTs that contains the method howMany, which takes an Constraints
- values will contain between 1 and 10 elements inclusive
- Each element of values will be between -1000000 and 1000000 inclusive
- values will not contain repeated elements
Examples
0)
{10}
Returns: 1
Only a single node
1)
{90,12}
Returns: 2
Either 90 or 12 can be the parent node.
2)
{1,2,3}
Returns: 5
3)
{90,13,2,3}
Returns: 14
4)
{-100000,12,42,0,10}
Returns: 42
Submissions are judged against all 17 archived test cases, of which 5 are shown here. Case numbers match the judge’s.
Coding Area
Language: C++17 · define a public class BSTs with a public method int howMany(vector<int> values) · 17 test cases · 2 s / 256 MB per case