3200. Maximum Height of a Triangle
Description
You are given two integers red and blue representing the count of red and blue colored balls. You have to arrange these balls to form a triangle such that the 1st row will have 1 ball, the 2nd row will have 2 balls, the 3rd row will have 3 balls, and so on.
All the balls in a particular row should be the same color, and adjacent rows should have different colors.
Return the maximum height of the triangle that can be achieved.
Example 1:
Example 2:
Example 3:
Input: red = 1, blue = 1
Output: 1
Example 4:
Constraints:
1 <= red, blue <= 100
Solutions
Solution 1: Simulation
Thinking
A triangle of height \(h\) uses \(h(h+1)/2\) balls, so \(h\) is at most \(O(\sqrt{\textit{red}+\textit{blue}})\). With \(1\le \textit{red},\textit{blue}\le 100\) we could enumerate heights and row colors, yet adjacent rows must differ, so the whole coloring is fixed once the first row is chosen.
It therefore suffices to try red-first and blue-first, then subtract \(1,2,\ldots\) balls from the two colors in alternation. Stop when the next row exceeds the remaining count of that color, and keep the larger feasible height. Flipping the color index by XOR keeps the simulation in constant extra space.
We can enumerate the color of the first row, then simulate the construction of the triangle, calculating the maximum height.
The time complexity is \(O(\sqrt{n})\), where \(n\) is the number of red and blue balls. The space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
1 2 3 4 5 6 7 8 9 10 | |
1 2 3 4 5 6 7 8 9 10 11 | |

