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)。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |