枚舉
3200. 三角形的最大高度
題目
給你兩個整數
red
和blue
,分別表示紅色球和藍色球的數量。你需要使用這些球來組成一個三角形,滿足第 1 行有 1 個球,第 2 行有 2 個球,第 3 行有 3 個球,依此類推。
每一行的球必須是 相同 顏色,且相鄰行的顏色必須 不同。
返回可以實現的三角形的 最大 高度。示例 1:
輸入: red = 2, blue = 4
輸出: 3
解釋:
上圖顯示了唯一可能的排列方式。
示例 2:
輸入: red = 2, blue = 1
輸出: 2
解釋:
上圖顯示了唯一可能的排列方式。
示例 3:
輸入: red = 1, blue = 1
輸出: 1
示例 4:
輸入: red = 10, blue = 1
輸出: 2
解釋:
上圖顯示了唯一可能的排列方式。
提示:
1 <= red, blue <= 100
題解
/*** @param {number} red* @param {number} blue* @return {number}*/
var maxHeightOfTriangle = function (red, blue) {if (red === 1 && blue === 1) {return 1;}/*** @description 得到三角形的最大高度* @param {*} x 奇數行* @param {*} y 偶數行*/const getHeight = (x, y) => {for (let i = 1; i <= 100; i++) {if (i % 2) {y -= i;if (y < 0) {return i - 1;}} else {x -= i;if (x < 0) {return i - 1;}}}};return Math.max(getHeight(red, blue), getHeight(blue, red));
};