首页 > 编程语言 >力扣 228. 汇总区间--python

力扣 228. 汇总区间--python

时间:2023-04-28 09:33:43浏览次数:32  
标签:判断 str nums -- 力扣 python 数组 区间

给定一个  无重复元素 的 有序 整数数组 nums 。

返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。

列表中的每个区间范围 [a,b] 应该按如下格式输出:

"a->b" ,如果 a != b
"a" ,如果 a == b
 

示例 1:

输入:nums = [0,1,2,4,5,7]
输出:["0->2","4->5","7"]
解释:区间范围是:
[0,2] --> "0->2"
[4,5] --> "4->5"
[7,7] --> "7"
示例 2:

输入:nums = [0,2,3,4,6,8,9]
输出:["0","2->4","6","8->9"]
解释:区间范围是:
[0,0] --> "0"
[2,4] --> "2->4"
[6,6] --> "6"
[8,9] --> "8->9"
 

提示:

0 <= nums.length <= 20
-231 <= nums[i] <= 231 - 1
nums 中的所有值都 互不相同
nums 按升序排列

解法:

数组首尾两个数的判断和数组除了首尾数外的判断,先定义一个L空组,那么遍历数组把nums[0]转字符串赋值给一个临时变量s,当索引 i 大于等于1时,判断当前数值是不是上一个索引 i-1 的数组+1,如果不是则可切断,得到nums[0]到nums[i-1]为连续的,赋值临时变量为s=s+"->"+str(nums[i-1]),并把s加入到L中,然后把s重新赋值为s=nums[i],循环判断得到后面的连续的数,不过当 i 为最后一个数时即i=n-1时,要单独做一下判断,因为没有下一个数可以循环判断了。

class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        L=[]
        n=len(nums)
        for i in range(n):
            if i==0:
                s=str(nums[0])
            if i>=1 and nums[i]!=nums[i-1]+1:
                if s!=str(nums[i-1]):
                    s=s+'->'+str(nums[i-1])
                L.append(s)
                s=str(nums[i])
            if i==n-1:
                if s!=str(nums[n-1]):
                    s=s+'->'+str(nums[n-1])
                L.append(s)
        return L

 

标签:判断,str,nums,--,力扣,python,数组,区间
From: https://www.cnblogs.com/lkc-test/p/17360956.html

相关文章

  • Splay
    Splay参考资料题解P3369【【模板】普通平衡树】Splay树Splay简易教程splay详解(一)小蒟蒻yyb的博客......
  • CISP_PTE学习
    一、http协议的基础知识(请求方法、状态码、响应头信息、协议的URL) 1、请求方法:(1)http1.0请求包含head、get、post(2)http1.1请求包含head、get、post、options、put、delete、trace、connect(3)get请求的标准格式是:<路径>【?<arg1>=<value1>[&<arg2>=<value2>....]】,例如h......
  • Nuxt3环境变量配置
    Nuxt3正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以花了点时间研究了一下,最终找到了解决方案,记录一下。官方文档面对一个新框架,我们自然是希望官方文档能够......
  • 【二分查找】LeetCode 153. 寻找旋转排序数组中的最小值
    题目链接153.寻找旋转排序数组中的最小值思路首先分析一下旋转数组可能有的状态:左<中<右,此时最小值肯定在左边,应当收缩右边界左<中,中>右,此时最小值肯定在右半段,应当收缩左边界左>中,中<右,此时最小值肯定在左半段,应当收缩右边界分析这三种状态可以发现,中值小......
  • 团队目标经常无法达成,应该怎么办?
    团队目标经常无法达成,可以考虑以下几个方面的原因:点击免费领取OKR案例库、OKR整套学习视频等资料目标设置不合理:团队目标的设置应该根据团队的实际情况和战略目标来制定,过高或过低的目标都会导致团队无法达成目标。工作分配不合理:团队成员的工作分配应该合理,每个成员应该承担......
  • ElementPlus 组件全局配置
    友链:语雀,在线文档协同平台官方提供的全局配置:ConfigProvider本文只做简单的模板参考,具体的配置请根据自己的业务灵活设置,如果你使用的是其它的ui框架,原理应该都差不多入口文件的配置注意事项需要设置全局属性的组件先导入进来,比如:ElTable、ElForm、ElInput一定要在这......
  • ISM Web组态监控软件
    ISMWeb组态软件采用Vue+Go语言开发,通过浏览器操作组态工具、浏览组态画面,实现工程管理、组态编辑、工业设备采集以及组态运行三大功能。通过实现图元组态、可视化图表组态、数据库组态的配置与关联,完成基于Web服务的实时数据监控与服务端的多用户访问等。采用标准HTML5技术,基于B/......
  • Docker获取Let`s Encrypt SSL 证书
    文中的操作都是在CentOSStreamrelease9下执行的,使用的是root用户。1.安装docker#卸载原有的dockeryumremovedockerdocker-clientdocker-client-latestdocker-commondocker-latestdocker-latest-logrotatedocker-logrotatedocker-engine#安装依赖yuminstall......
  • 使用 Vagrant 在 Ubuntu 虚拟机上安装使用 Portainer
    Portainer是一款免费的Docker管理工具,它提供了一个Web界面,通过简单易用的界面管理Docker容器和镜像。以下是使用Vagrant在Ubuntu虚拟机上安装使用Portainer的示例步骤:1.创建Ubuntu虚拟机在Vagrantfile文件中添加以下配置:```Vagrant.configure("2")......
  • EBS:OM接口表导入销售订单失败
     用户通过集成器程序导入销售订单,过程调用了定义程序包(CUX2056_网络销售订单导入)向OM接口表,再调用标准程序将接口转销售订单用户收到错误信息“价目表价格或销售价格不正确。请输入值为正的价目表价格和销售价格。” 从OM的处理信息表查到最近处理错误信息SELECTm.*,m......