Leetcode打卡:不含特殊楼层的最大连续楼层数

执行结果:通过

题目 2274 不含特殊楼层的最大连续楼层数

Alice 管理着一家公司,并租用大楼的部分楼层作为办公空间。Alice 决定将一些楼层作为 特殊楼层 ,仅用于放松。

给你两个整数 bottomtop ,表示 Alice 租用了从 bottomtop(含 bottomtop 在内)的所有楼层。另给你一个整数数组 special ,其中 special[i] 表示 Alice 指定用于放松的特殊楼层。

返回不含特殊楼层的 最大 连续楼层数。

示例 1:

复制代码
输入:bottom = 2, top = 9, special = [4,6]
输出:3
解释:下面列出的是不含特殊楼层的连续楼层范围:
- (2, 3) ,楼层数为 2 。
- (5, 5) ,楼层数为 1 。
- (7, 9) ,楼层数为 3 。
因此,返回最大连续楼层数 3 。

示例 2:

复制代码
输入:bottom = 6, top = 8, special = [7,6,8]
输出:0
解释:每层楼都被规划为特殊楼层,所以返回 0 。

提示

  • 1 <= special.length <= 105
  • 1 <= bottom <= special[i] <= top <= 109
  • special 中的所有值 互不相同

代码以及解题思路

代码

复制代码
class Solution:
    def maxConsecutive(self, bottom: int, top: int, special: List[int]) -> int:
        return max(y - x for x, y in pairwise([bottom - 1] + sorted(special) + [top + 1])) - 1

解题思路

  1. 理解题意
    • bottomtop 定义了查找连续整数序列的范围。
    • special 列表包含了在这个范围内的一些特殊数字,这些数字可以构成连续整数序列的一部分。
  2. 处理边界情况
    • 在开始计算之前,为了处理边界情况,我们在 special 列表的前后分别添加 bottom - 1top + 1。这两个数字不在目标范围内,但这样做可以帮助我们计算从 bottom 开始到第一个特殊数字以及从最后一个特殊数字到 top 结束之间的连续整数序列长度。
  3. 排序
    • special 列表进行排序,确保数字是按升序排列的。这是因为在连续整数序列中,每个数字都应该比前一个数字大1。
  4. 计算连续序列长度
    • 使用 pairwise 函数(来自 itertools 模块,但题目描述中未明确提及,可能是假设已知)来计算相邻元素之间的差值。pairwise 函数会返回一个迭代器,其中每个元素是一个元组,包含列表中的相邻项 (x, y)
    • 对每个 (x, y) 元组,计算 y - x,这将给出从 xy(不包括 y)之间的连续整数个数。注意,由于我们在列表的开头和结尾添加了 bottom - 1top + 1,这里的 y - x 实际上表示的是从 x+1y-1 的连续整数个数(因为我们要找的是严格大于前一个数的连续整数序列)。
  5. 找出最大长度
    • 使用 max 函数找出所有计算出的连续整数序列长度的最大值。
  6. 调整结果
    • 由于我们在计算长度时考虑了序列的起始和结束数字(即 x+1y-1),而题目要求的是序列中数字的数量,因此需要从最大值中减去1来得到最终答案。这是因为我们在计算长度时包括了序列两端的边界效应(即添加的 bottom - 1top + 1 导致的额外长度)。
相关推荐
江畔柳前堤2 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore3 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考5 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX5 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面6 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号6 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽6 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI6 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者8 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者8 小时前
【征程6】校准量化中HistogramObserver解析
算法