#3562
Maximum Profit from Trading Stocks with Discounts
HardArrayDynamic ProgrammingTreeDepth-First SearchTree TraversalDynamic Programming
Approaches
Brute ForceOptimal
Complexity Comparison
| Brute Force | Optimal Solution★ | |
|---|---|---|
| Time | O(n²) | O(n) |
| Space | O(1) | O(n) |
💡
Intuition
Time O(n)Space O(n)
This approach uses dynamic programming to calculate profits efficiently by considering each employee's potential profit based on their parent's purchase decision. It avoids redundant calculations by storing results.
⚙️
Algorithm
3 steps- 1Step 1: Build a tree from the hierarchy to represent employee relationships.
- 2Step 2: Use DFS to compute max_profit and max_profit1 for each employee.
- 3Step 3: Return the maximum profit achievable within the budget.
solution.py9 lines
1def maxProfitOptimal(n, present, future, hierarchy, budget):
2 from collections import defaultdict
3 tree = defaultdict(list)
4 for u, v in hierarchy:
5 tree[u].append(v)
6 def dfs(u):
7 # Implementation here
8 return max_profit
9 return dfs(1)ℹ
Complexity note: The complexity is linear as we traverse each employee once and store results, avoiding redundant calculations.
- 1Understanding the hierarchy is crucial for profit calculations.
- 2Dynamic programming helps avoid redundant calculations.
Solutions and explanations are original Tejav content. Problem titles © LeetCode — use the LeetCode button above for the full problem statement.