博客
关于我
LeetCode:228. Summary Ranges汇总区间(C语言)
阅读量:388 次
发布时间:2019-03-05

本文共 1128 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要找到一个方法,来生成一个最小的有序区间范围列表,这些区间恰好覆盖给定数组中的所有元素,并且不存在不在数组中的数字。

方法思路

我们可以通过遍历数组来找到每个连续的区间。具体步骤如下:

  • 初始化当前区间的起始和结束点为数组的第一个元素。
  • 遍历数组中的每个元素:
    • 如果当前元素与前一个元素相差1,则继续当前区间。
    • 如果当前元素与前一个元素相差大于1,则记录当前区间,开始一个新的区间。
  • 记录最后一个区间。
  • 将这些区间转换为指定的字符串格式输出。
  • 这种方法利用了数组的有序性质,确保每个区间都是连续的整数序列。

    解决代码

    def summaryRanges(nums):    if not nums:        return []    result = []    current_start = nums[0]    current_end = current_start    for num in nums[1:]:        if num == current_end + 1:            current_end = num        else:            if current_start == current_end:                result.append(f"{current_start}")            else:                result.append(f"{current_start}->{current_end}")            current_start = num            current_end = num    # 处理最后一个区间    if current_start == current_end:        result.append(f"{current_start}")    else:        result.append(f"{current_start}->{current_end}")    return result

    代码解释

  • 初始化检查:首先检查输入数组是否为空,如果为空,则返回空列表。
  • 遍历数组:从第二个元素开始遍历,检查当前元素是否与前一个元素相差1,以确定是否在同一个区间内。
  • 记录区间:当遇到相差大于1的元素时,记录当前区间,并重置当前区间的起始和结束点。
  • 处理最后一个区间:最后一个区间需要单独处理以确保被记录。
  • 输出结果:将所有区间转换为指定的字符串格式并返回结果。
  • 这种方法确保了每个区间都是最小的连续整数序列,并且覆盖了数组中的所有元素。

    转载地址:http://yadzz.baihongyu.com/

    你可能感兴趣的文章
    移动互联网恶意软件命名及分类
    查看>>
    adb shell am 的用法
    查看>>
    PySide图形界面开发(一)
    查看>>
    Android如果有一个任意写入的漏洞,如何将写权限转成执行权限
    查看>>
    三角网格体积计算
    查看>>
    现代3D图形编程学习-基础简介(2) (译)
    查看>>
    Github教程(3)
    查看>>
    vue实现简单的点击切换颜色
    查看>>
    vue3 template refs dom的引用、组件的引用、获取子组件的值
    查看>>
    深入浅出mybatis
    查看>>
    Zookeeper快速开始
    查看>>
    882. Reachable Nodes In Subdivided Graph
    查看>>
    402. Remove K Digits
    查看>>
    375. Guess Number Higher or Lower II
    查看>>
    650. 2 Keys Keyboard
    查看>>
    764. Largest Plus Sign
    查看>>
    214. Shortest Palindrome
    查看>>
    916. Word Subsets
    查看>>
    869. Reordered Power of 2
    查看>>
    1086 Tree Traversals Again
    查看>>