101 Logo
onenoughtone

Problem Statement

Tallest Billboard

You are installing a billboard and want it to have the largest height. The billboard will have two steel supports, one on each side. Each steel support must be an equal height.

You are given a collection of rods that can be welded together. For example, if you have rods of lengths 1, 2, and 3, you can weld them together to make a support of length 6.

Return the largest possible height of your billboard installation. If you cannot support the billboard, return 0.

Examples

Example 1:

Input: rods = [1, 2, 3, 6]
Output: 6
Explanation: We can use the rods of lengths 1, 2, and 3 to make one support of length 6, and use the rod of length 6 to make the other support.

Example 2:

Input: rods = [1, 2, 3, 4, 5, 6]
Output: 10
Explanation: We can use rods of lengths 4 and 6 to make one support of length 10, and use rods of lengths 1, 2, 3, and 4 to make the other support of length 10.

Example 3:

Input: rods = [1, 2]
Output: 0
Explanation: We cannot make two supports of equal height, so we return 0.

Constraints

  • 1 <= rods.length <= 20
  • 1 <= rods[i] <= 1000
  • sum(rods[i]) <= 5000

Problem Breakdown

To solve this problem, we need to:

  1. This problem can be solved using dynamic programming with a state that represents the difference between the heights of the two supports.
  2. We can use a hash map to store the maximum possible height of the shorter support for each difference in heights.
  3. For each rod, we have three options: add it to the first support, add it to the second support, or don't use it.
  4. The goal is to find the maximum height where the difference between the two supports is 0.
ProblemSolutionCode
101 Logo
onenoughtone