Every day a Leetcode
题目来源:3200. 三角形的最大高度
解法1:模拟
枚举第一行是红色还是蓝色,再按题意模拟即可。
代码:
/** @lc app=leetcode.cn id=3200 lang=cpp** [3200] 三角形的最大高度*/// @lc code=start
class Solution
{
public:int maxHeightOfTriangle(int red, int blue){if (red <= 0 || blue <= 0)return 0;return max(helper(red, blue), helper(blue, red));}// 辅助函数int helper(int x, int y){int level = 0;while (x >= 0 && y >= 0){if (level % 2 == 0){x -= (level + 1);if (x < 0)break;}else{y -= (level + 1);if (y < 0)break;}level++;}return level;}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(min(sqrt(red), sqrt(blue)))。
空间复杂度:O(1)。