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

  1. Step 1: Dynamic Programming optimizes recursive algorithms that exhibit optimal substructure and overlapping subproblems.
  2. 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.