首页 > 其他分享 >leedcode-汇总区间

leedcode-汇总区间

时间:2024-03-18 10:25:09浏览次数:14  
标签:nums 元素 汇总 leedcode 列表 start 区间 li my

自己写的:

class Solution:
    def summaryRanges(self, nums):
        my_li = []  # 创建一个空列表用于存储结果
        if not nums:  # 如果输入列表为空
            return my_li  # 返回空列表
        if len(nums) == 1:  # 如果输入列表只有一个元素
            my_li.append(f"{nums[0]}")  # 将该元素添加到结果列表中
        start = nums[0]  # 初始化区间起始值为列表的第一个元素
        for i in range(len(nums) - 1):  # 遍历列表元素,注意遍历范围是长度减一
            if nums[i] != nums[i + 1] - 1:  # 如果当前元素与下一个元素不连续
                end = nums[i]  # 结束值为当前元素
                if start == end:  # 如果起始值等于结束值
                    my_li.append(f"{start}")  # 添加单个值到结果列表
                if start != end:  # 如果起始值不等于结束值
                    my_li.append(f"{start}->{end}")  # 添加区间到结果列表
                start = nums[i + 1]  # 更新起始值为下一个元素

                if i == len(nums) - 2:  # 如果已经到达倒数第二个元素
                    my_li.append(f"{nums[-1]}")  # 直接添加最后一个元素到结果列表
            if nums[i] == nums[i + 1] - 1:  # 如果当前元素与下一个元素连续
                if i == len(nums) - 2:  # 如果已经到达倒数第二个元素
                    end = nums[-1]  # 结束值为最后一个元素
                    my_li.append(f"{start}->{end}")  # 添加起始值到结束值的区间到结果列表

        return my_li  # 返回结果列表

 

标签:nums,元素,汇总,leedcode,列表,start,区间,li,my
From: https://www.cnblogs.com/yyyjw/p/18079773

相关文章

  • Github高级搜索【指定日期区间,星星数,用户仓库名多条件精确搜索】
    小伙伴们号,欢迎关注,一起学习,无限进步GitHub高级搜索允许用户使用多种条件来精确查找所需的仓库、文件和代码。以下是对GitHub高级搜索的最全、详细总结说明:文章目录关键字搜索仓库名搜索用户搜索组织搜索文件搜索语言搜索星星数搜索更新时间搜索授权搜索组合搜索排......
  • abc343F 区间第2大的出现次数
    给定数组a[n],有Q组操作,格式为:1px,将a[p]修改为x;2lr,查询区间[l,r]内第2大元素的出现次数。1<=n,q<=2e5;1<=a[i]<=1e9用线段树维护各个区间的最大及次大元素的出现次数,合并时最多只保留两条记录。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#......
  • 435. 无重叠区间c
    typedefstructnode{intleft;intright;}bounds;intcmp(constvoid*a,constvoid*b){bounds*x=(bounds*)a;bounds*y=(bounds*)b;if(x->right>y->right)return1;return-1;}interaseOverlapIntervals(int**interva......
  • lc795 区间子数组个数
    给定数组nums[n]和两个整数left,right,找出nums中连续非空、并且最大元素在[left,right]范围内的子数组,统计所有满足条件子数组的个数。1<=n<=1e5;0<=nums[i]<=1e9;0<=left<=right<=1e9;保证答案在int内枚举每个元素作为最大元素的情况,统计对应的子数组数量,如果arr[i]在允许范......
  • python疑难杂症(9)---python的数据类型字典(dict)的创建、访问、修改、删除等方法汇总
    在Python中,字典(Dictionary)是一种内置的数据烈性,是无序的数据结构,用于存储键值对(key-value)。字典中的每个元素由一个键(key)和一个对应的值(value)组成,键和值之间使用冒号(:)进行分隔,每个键值对之间使用逗号(,)进行分隔。字典中的键必须是唯一的,而值可以是任意类型的对象,字典可以用来存......
  • Linux 运维工程师面试真题-5-常考题目汇总
    Linux运维工程师面试真题-5-常考题目汇总1.解释下什么是GPL,GNU,自由软件?GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分......
  • leedcode-翻转二叉树
    自己写的:classSolution:definvertTree(self,root:Optional[TreeNode])->Optional[TreeNode]:#创建一个新的TreeNode以存储反转后的树newroot=TreeNode()#如果输入的根节点为空,则返回空ifnotroot:......
  • P3374 【模板】树状数组 动态求连续区间和 刷题笔记
    我们创建如下的树状数组来辅助操作该数组每个s[i]处于第几层取决于其二进制最后低位的1处于从右往左数第几列显然所有奇数的最右边一位都是1即其最低位的1处于右边第一列所以所有的奇数处于第一层而2,6,10,14的最低位1处于右边第二列 所以这些数处于第二层 8的最......
  • 软件项目管理资料汇总(规格说明书、详细设计、测试计划、验收报告)
      前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是针对您提到的各个阶段的文档资料概述:所有资料获取:点击获取开发阶段需求规格说明书:详细描述了软件系统的功能需求、非功......
  • lc327 区间和的个数
    给定数组nums[n]和整数lower与upper,求nums[n]中,元素之和在[lower,upper]范围内的子数组个数。1<=n<=1e5;nums[i]在int范围内;-1e5<=lower<=upper<=1e5;答案在int范围内子数组的和可以用前缀和来快速求出,假设当前位置对应的前缀和为y,前面某处对应的前缀和为x,满足lower<=y-x<=u......