Number of Ways to Build Sturdy Brick Wall - Problem
You're tasked with building a sturdy brick wall with specific dimensions and constraints. Given a wall of height rows and width units, you must construct it using bricks from an array where each brick has height 1 and width bricks[i].
Key Requirements:
- Each row must be exactly
widthunits long - You have an infinite supply of each brick type
- Bricks cannot be rotated
- Sturdy constraint: Adjacent rows cannot have joints at the same position (except at the wall ends)
Return the number of ways to build such a wall, modulo 109 + 7.
Example: With height=2, width=3, bricks=[1,2], you could have row 1 as [2,1] and row 2 as [1,2], since their internal joints don't align.
Input & Output
example_1.py — Basic Case
$
Input:
height = 2, width = 3, bricks = [1, 2]
›
Output:
2
💡 Note:
Two valid ways: Row1=[2,1] Row2=[1,2], and Row1=[1,2] Row2=[2,1]. In both cases, internal joints don't align.
example_2.py — Single Row
$
Input:
height = 1, width = 4, bricks = [1, 2]
›
Output:
5
💡 Note:
One row can be filled as: [1,1,1,1], [1,1,2], [1,2,1], [2,1,1], [2,2]. All are valid since there's no adjacent row to conflict with.
example_3.py — No Valid Arrangement
$
Input:
height = 2, width = 3, bricks = [2]
›
Output:
0
💡 Note:
Width 3 cannot be filled using only bricks of size 2 (3 is odd, but we need even sum). No valid arrangements exist.
Constraints
- 1 ≤ height ≤ 200
- 1 ≤ width ≤ 200
- 1 ≤ bricks.length ≤ 10
- 1 ≤ bricks[i] ≤ width
- All bricks[i] are unique
- Answer fits in 32-bit integer after modulo 109 + 7
Visualization
Tap to expand
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code