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

欢乐力扣:汇总区间

文章目录

  • 1、题目描述
  • 2、思路
      • 代码


1、题目描述

 汇总区间。
 给定一个无重复元素 的 有序 整数数组 nums 。返回恰好覆盖数组中所有数字的最小有序区间范围列表 。也就是说nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:
“a->b” ,如果 a != b
“a” ,如果 a == b

在这里插入图片描述

2、思路

 核心思想若有一个元素比前一个元素恰好>1,则更新右边界;否则,就存储一个区间。

代码

class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        ans = []
        i = 0 
        while i < len(nums):
            # 临时变量存储区间的开始边界
            start = i  
            # 若后一个数字比前一个数字==1,则移动有边界   
            while i<len(nums)-1 and nums[i+1] - nums[i] == 1:
                i += 1
            # 存储区间
            if start < i:
                ans.append(str(nums[start]) + '->' + str(nums[i]))
            # 若 start == end , 则说明当前区间仅一个数字
            else:
                ans.append(str(nums[start]))
            # 别忘了更新i
            i += 1 
        return ans 


http://www.kler.cn/a/578693.html

相关文章:

  • QwQ-32B 开源!本地部署+微调教程来了
  • 文心一言:中国大模型时代的破局者与探路者
  • STM32中输入/输出有无默认电平
  • Vue3中computed计算属性的高级玩法
  • Vue3基础之响应式原理
  • 【java】StringJoiner
  • MyBatis-Plus分页控件使用及使用过程发现的一个坑
  • 【形态学操作中的开运算和闭运算详细讲解】
  • 系统架构设计师—系统架构设计篇—特定领域软件体系结构
  • 为AI聊天工具添加一个知识系统 之141 设计重审 之6 文章学 之 引言 之0 总括生命的形式:意识形态 诗和逻辑
  • WPF基础知识1-20
  • LeetCode 每日一题 1328. 破坏回文串
  • 机器学习数学基础:42.AMOS 结构方程模型(SEM)分析的系统流程
  • Primer - 自适应学习,AI学习工具
  • 从案例分析看微型工业计算机在智能社区中的卓越表现
  • JavaScript网页设计案例:打造交互式用户体验
  • Stream特性(踩坑):惰性执行、不修改原始数据源
  • Expo知识框架大全详解
  • 不同开发语言之for循环的用法、区别总结
  • Spring Cloud之注册中心之Nacos负载均衡