当前位置: 首页 > news >正文

LeetCode 3200.三角形的最大高度:枚举

【LetMeFly】3200.三角形的最大高度:枚举

力扣题目链接:https://leetcode.cn/problems/maximum-height-of-a-triangle/

给你两个整数 redblue,分别表示红色球和蓝色球的数量。你需要使用这些球来组成一个三角形,满足第 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

解题方法:枚举

使用一个大小为2的数组记录layer层所需两种颜色分别多少个。

使用layer从1层开始模拟,每次两种颜色分别加上layer。如果球数不足,则停止枚举layer。

  • 时间复杂度 O ( min ⁡ ( r e d , b l u d ) ) O(\min(\sqrt{red}, \sqrt{blud})) O(min(red ,blud )),因为 1 + 2 + 3 + . . . + k = n ( n + 1 ) 2 1+2+3+...+k=\frac{n(n+1)}{2} 1+2+3+...+k=2n(n+1)
  • 空间复杂度 O ( 1 ) O(1) O(1)

AC代码

C++
class Solution {
public:int maxHeightOfTriangle(int red, int blue) {int cnt[2] = {0, 0};int layer = 1;while (true) {cnt[layer % 2] += layer++;if (!((cnt[0] <= red && cnt[1] <= blue) || (cnt[0] <= blue && cnt[1] <= red))) {return layer - 2;}}}
};
Python
class Solution:def maxHeightOfTriangle(self, red: int, blue: int) -> int:cnt = [0, 0]for layer in range(1, 1000000):cnt[layer % 2] += layerif not ((cnt[0] <= red and cnt[1] <= blue) or (cnt[0] <= blue and cnt[1] <= red)):return layer - 1return -1  # Fake Return

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/142967272

http://www.lryc.cn/news/463685.html

相关文章:

  • ssm基于java的招聘系统设计与开发+vue
  • 【网络原理】TCP/IP五层网络模型之网络层-----IP协议详解,建议收藏!!
  • 三次握手与四次挥手
  • awk命令学习记录
  • 科大讯飞嵌入式面试题及参考答案
  • C Lua5.4.6 SDK开发库
  • 无线网卡知识的学习-- wireless基础知识(cfg80211)
  • Next.js 学习 - 路由系统(Routing)
  • Unity XR PICO 手势交互 Demo APK
  • EM算法学习
  • 019_基于python+django食品销售数据分析系统2024_4032ydxt
  • C语言笔记(数据的存储篇)
  • wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法
  • CSS 居中那些事
  • Java项目-基于springboot框架的智能热度分析和自媒体推送平台项目实战(附源码+文档)
  • 跨平台进程池背后的思想
  • 前端性能优化之加载篇
  • 数据结构(栈)
  • Aspose.PDF功能演示:使用 JavaScript 从 PDF 中提取文本
  • 计算机系统简介
  • 学习文档10/18
  • Redis入门到精通(二):入门Redis看这一篇就够了
  • 荒岛逃生游戏
  • 玫瑰花HTML源码
  • 【wpf】07 后端验证及令牌码获取步骤
  • 学习中,师傅b站泷羽sec——xss挖掘过程
  • 什么是双因素身份验证?双因素身份验证的凭据类型有哪些?
  • 【MR开发】在Pico设备上接入MRTK3(一)——在Unity工程中导入MRTK3依赖
  • 利用移动式三维扫描技术创建考古文物的彩色纹理网格【上海沪敖3D】
  • Spring AI Java程序员的AI之Spring AI(四)