What algorithmic technique solves complex optimization problems by breaking them into overlapping subproblems and storing the subproblem solutions (memoization)?
Answer and explanation
Correct answer: A. Dynamic Programming
- Step 1: Dynamic Programming optimizes recursive algorithms that exhibit optimal substructure and overlapping subproblems.
- Step 2: By storing previously computed results in a lookup table (memoization or tabulation), it avoids exponential redundant recomputation.
Answer
Dynamic Programming.
Why not the others: 'Greedy Algorithm' makes locally optimal choices without backtracking or storing subproblem tables; 'Brute Force' evaluates every possibility without optimization; 'Monte Carlo' relies on repeated random sampling.
Practise more Python Programming, Data Structures, Algorithms, Networks and Cybersecurity.
Free questions with an explanation for every one, and full timed Saudi Secondary School Certificate mock tests.
More Python Programming, Data Structures, Algorithms, Networks and Cybersecurity questions
- What is the time complexity of searching for an element in an unsorted array of elements using linear search?
- What is the output of the following Python expression: `[x**2 for x in range(5) if x % 2 == 1]`?
- Which data structure operates on a Last-In, First-Out (LIFO) access principle?
- Which SQL clause is used to filter aggregated group records after a `GROUP BY` statement has been applied?
- What type of network topology connects all nodes to a central forwarding device such as a network switch?
- In cybersecurity, what type of malicious attack overwhelms a web server with massive volumes of traffic from multiple compromised sources to…