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

news2024/10/18 5:52:05

【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] += layer
            if not ((cnt[0] <= red and cnt[1] <= blue) or (cnt[0] <= blue and cnt[1] <= red)):
                return layer - 1
        return -1  # Fake Return

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2217571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

远距离长航时低成本泡沫垂直起降固定翼无人机技术详解

关于远距离长航时低成本泡沫垂直起降固定翼无人机技术&#xff0c;以下是一个详细的技术解析&#xff1a; 一、技术概述 远距离长航时低成本泡沫垂直起降固定翼无人机是一种结合了垂直起降技术和固定翼设计优势的无人机系统。该技术通过采用泡沫材料制造无人机机体&#xff0…

iOS IPA上传到App Store Connect的三种方案详解

引言 在iOS应用开发中&#xff0c;完成开发后的重要一步就是将IPA文件上传到App Store Connect以便进行测试或发布到App Store。无论是使用Xcode进行原生开发&#xff0c;还是通过uni-app、Flutter等跨平台工具生成的IPA文件&#xff0c;上传到App Store的流程都是类似的。苹果…

车易泊车位管理相机 —— 智能管理,停车无忧

在现代城市生活中&#xff0c;停车问题一直是困扰着车主和城市管理者的难题。车位难找、停车管理混乱等问题不仅浪费了人们的时间和精力&#xff0c;也影响了城市的交通秩序和形象。而车易泊车位管理相机的出现&#xff0c;为解决这些问题提供了一种高效、智能的解决方案。 一、…

DataWhale10月动手实践——Bot应用开发task03学习笔记

一、工作流 1. 工作流的定义 工作流由多个节点组成&#xff0c;这些节点可以包括大语言模型&#xff08;LLM&#xff09;、代码模块、逻辑判断工具、插件等。每个节点需要不同的信息来执行其功能。工作流的核心含义是&#xff1a;对工作流程及其操作步骤之间的业务规则进行抽…

无人机之位置信息计算篇

一、主要导航技术 卫星导航 全球定位系统&#xff08;GPS&#xff09;&#xff1a;无人机上装有专门的接收器&#xff0c;用于捕获GPS系统发射的无线电信号。当无人机接收到来自至少四颗卫星的信号时&#xff0c;通过计算信号抵达时间的微小差异&#xff0c;即可运用三角定位…

SQL语句查询

SQL语句查询 查询产生一个虚拟表 看到的是表形式显示的结果&#xff0c;但结果并不真正存储 每次执行查询只是从数据表中提取数据&#xff0c;并按照表的形式显示出来 查询语法 SELECT <列名> FROM <表名> [WHERE <查询条件表达式>] SELECT …

插齿刀的齿数选择不同会有什么影响?

插齿——作为一种常用的制齿手段&#xff0c;经常被用到有台肩的齿轮以及空刀槽很窄的双联或多联齿轮&#xff0c;以及各种内齿加工中。虽然强力车齿在现在应用的越来越多了&#xff0c;但是插齿这种加工应该在相当长的一段时间内还是会继续服役的。中这期咱们聊聊插齿刀齿数对…

显示指定目录下所有.c文件中出现指定字符串的行号 Linux环境 C语言实现

问题&#xff1a;显示指定目录及其后代目录下所有.c文件中出现指定字符串的行号 算法&#xff1a; 分为两个文件编写 &#xff1a; display_string_lineno.c &#xff0c; Read_line.c 分为三个函数编写 &#xff1a; void display_lineno(char* dirname,const char *pstr)…

sankey.top - 桑基图/桑吉图/流程图/能量流/物料流/能量分析

sankey.top 桑基图大师(SankeyMaster)是您创建复杂桑基图表的首选工具。轻松输入数据并创建桑基图表&#xff0c;准确揭示复杂的数据关系&#xff01; 应用 https://apps.apple.com/cn/app/sankeymaster-sankey-diagram/id6474908221 在线编辑器 https://studio.sankeymaste…

解决ultralytics中的YOLOv8在执行task.py文件添加模块操作出现的KeyError报错

报错详情&#xff1a; 在ultralytics项目文件夹内运行/home/xxx/ultralytics/train.py进行单GPU训练的时候训练可以正常进行 from ultralytics import YOLO# Load a model model YOLO("/home/xxx/ultralytics/ultralytics/cfg/models/v8/yolov8s-FASFF.yaml") # …

Github学生包的JetBrains认证过期/idea认证过期如何解决?

官网通过Github更新状态即可JetBrains Account 注意要到邮箱走流程

自动化测试与敏捷开发的重要性

敏捷开发与自动化测试是现代软件开发中两个至关重要的实践&#xff0c;它们相互补充&#xff0c;共同促进了软件质量和开发效率的提升。 敏捷开发的重要性 敏捷开发是一种以人为核心、迭代、循序渐进的软件开发方法。它强调以下几个核心价值观和原则&#xff1a; 个体和交互…

力扣 简单 83.删除排序链表中的重复元素

文章目录 题目介绍题解 题目介绍 题解 法一&#xff1a;带dummy node class Solution {public ListNode deleteDuplicates(ListNode head) {//根据提示&#xff0c;val的值在-100~100&#xff0c;如果括号里面不填则默认dummy.val0&#xff0c;可能会和某些测试用例的val一样…

第三季度中国游戏市场收入创历史新高;京东物流与淘宝天猫达成合作;YouTube 上线“用相机拍摄”标签....|网易数智日报

第三季度中国游戏市场收入917.66亿&#xff0c;创历史新高 中国音数协游戏工委今日发布了最新的 2024 年第三季度中国游戏产业季度报告。 数据显示&#xff0c;2024 年第三季度中国游戏市场收入 917.66 亿元&#xff0c;环比增长 22.96%&#xff0c;同比增长 8.95%。 中国音…

完全指南:如何高效进行业务应用开发?

❤️ 温馨提醒 本篇文章较长&#xff0c;你可以根据目录选择最感兴趣的部分阅读。当然&#xff0c;我相信如果你全部阅读完&#xff0c;一定会有不少的收获。 引言 企业对业务应用开发的需求正在日益增长。 据 Gartner 统计&#xff0c;全球企业软件市场预计将在 2025 年达到…

数据结构——哈夫曼树及其应用(哈夫曼编码)

判断树&#xff1a;用来描述分类过程的二叉树 哈夫曼树&#xff08;最优二叉树&#xff09;的基本概念 路径&#xff1a;从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。 结点的路径长度&#xff1a;两结点间路径上的分支数。 结点的路径长度计算&#xff1…

【jQuery】jQuery 处理 Ajax 以及解决跨域问题的方式

文章目录 HTTP原生创建 AjaxjQuery 处理 Ajax$.ajax()$().load()$.get()$.post() 跨域CORSJSONPiframeweb sockets HTTP 超文本传输协议&#xff08;HTTP&#xff0c;HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。设计 HTTP 最初的目的是为了提供一种发…

Redis中String类型数据扩容原理分析

大家好&#xff0c;我是 V 哥。在 Java 中&#xff0c;我们有动态数组ArrayList&#xff0c;当插入新元素空间不足时&#xff0c;会进行扩容&#xff0c;好奇 Redis 中的 String 类型&#xff0c;C 语言又是怎样的实现策略&#xff0c;带着疑问&#xff0c;咱们来了解一下。 最…

集成电路公司进销存系统生成合同——未来之窗行业应用跨平台架构

一、进销存生成合同优势 1. 提高效率&#xff1a;节省了手动起草和编辑合同的时间&#xff0c;能够快速生成合同&#xff0c;加快业务流程。 2. 减少错误&#xff1a;避免了人工输入可能导致的拼写、数据错误等&#xff0c;提高合同的准确性和规范性。 3. 数据一致性&#xff…

Python Web服务器网关接口

gunicorn 是 WSGI。 因其中一个项目说是要用 gunicorn &#xff0c;然后就顺便了解下 gunicorn 这个东西是干什么的。 要想了解 gunicorn &#xff0c;那么就需要知道 WSGI 是什么东西。 开始都不知道 WSGI 是什么概念&#xff0c;还以为是个新东西。 其实就是 Python 实现…