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:
Input: red = 2, blue = 4
Output: 3
Explanation:
The only possible arrangement is shown above.
Example 2:
Input: red = 2, blue = 1
Output: 2
Explanation:
The only possible arrangement is shown above.
Example 3:
Input: red = 1, blue = 1
Output: 1
Example 4:
Input: red = 10, blue = 1
Output: 2
Explanation:
The only possible arrangement is shown above.
Constraints:
1 <= red, blue <= 100
Solution
Python3
class Solution:
def maxHeightOfTriangle(self, red: int, blue: int) -> int:
def helper(red, blue):
curr = 1
while True:
if curr % 2 == 1:
if red < curr: break
red -= curr
else:
if blue < curr: break
blue -= curr
curr += 1
return curr
return max(helper(red, blue), helper(blue, red)) - 1