Leetcode3200. 三角形的最大高度

打印 上一主题 下一主题

主题 820|帖子 820|积分 2460

Every day a Leetcode

题目来源:3200. 三角形的最大高度
解法1:模拟

枚举第一行是红色照旧蓝色,再按题意模拟即可。
代码:
  1. /*
  2. * @lc app=leetcode.cn id=3200 lang=cpp
  3. *
  4. * [3200] 三角形的最大高度
  5. */
  6. // @lc code=start
  7. class Solution
  8. {
  9. public:
  10.     int maxHeightOfTriangle(int red, int blue)
  11.     {
  12.         if (red <= 0 || blue <= 0)
  13.             return 0;
  14.         return max(helper(red, blue), helper(blue, red));
  15.     }
  16.     // 辅助函数
  17.     int helper(int x, int y)
  18.     {
  19.         int level = 0;
  20.         while (x >= 0 && y >= 0)
  21.         {
  22.             if (level % 2 == 0)
  23.             {
  24.                 x -= (level + 1);
  25.                 if (x < 0)
  26.                     break;
  27.             }
  28.             else
  29.             {
  30.                 y -= (level + 1);
  31.                 if (y < 0)
  32.                     break;
  33.             }
  34.             level++;
  35.         }
  36.         return level;
  37.     }
  38. };
  39. // @lc code=end
复制代码
结果:

复杂度分析:
时间复杂度:O(min(sqrt(red), sqrt(blue)))。
空间复杂度:O(1)。

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

风雨同行

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表