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

java汇总区间

给定一个  无重复元素 的 有序 整数数组 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出发,向右遍历。每次遇到相邻元素之间的差值大于 1 时,我们就找到了一个区间。遍历完数组之后,就能得到一系列的区间的列表。

在遍历过程中,维护下标 low和 high分别记录区间的起点和终点,对于任何区间都有 low≤high。当得到一个区间时,根据 loww 和 high的值生成区间的字符串表示。

当 low<high时,区间的字符串表示为 ‘‘low→high"。

当 low=high时,区间的字符串表示为 ‘‘low"。

作者:力扣官方题解
 

class Solution {public List<String> summaryRanges(int[] nums) {List<String> ret = new ArrayList<String>();int i = 0;int n = nums.length;while (i < n) {int low = i;i++;while (i < n && nums[i] == nums[i - 1] + 1) {i++;}int high = i - 1;StringBuffer temp = new StringBuffer(Integer.toString(nums[low]));if (low < high) {temp.append("->");temp.append(Integer.toString(nums[high]));}ret.add(temp.toString());}return ret;}
}

相关文章:

  • 关于网络丢包的一种可能性分析
  • YOLOv9改进策略 :主干优化 | 极简的神经网络VanillaBlock 实现涨点 |华为诺亚 VanillaNet
  • 机器人规划算法——基于A-star和CostMap膨胀地图的全局规划(附Github源码链接)
  • Mysql-数据库范式和Mysql安装
  • MCU友好过渡MPU,米尔基于STM32MP135开发板裸机开发应用笔记
  • HANA中的内存及磁盘使用统计
  • 美国CPC认证如何办理?CPC审核不通过有哪些原因呢?
  • ArcGIS Pro横向水平图例
  • Android开发 OCR:通过Tesseract实现图片文字识别
  • 题目:新一的宝藏搜寻加强版(蓝桥OJ 4059)
  • 学习笔记——C语言基本概念指针(下)——(8)
  • 【Linux】文件查看命令(六)
  • AMD GPUs - Radeon™ PRO W7900与NVIDIA 4000系列GPU性能
  • 工作日志- 不定期更新
  • git 更改仓库地址
  • angular2 简述
  • CSS3 变换
  • ES6 ...操作符
  • ES6之路之模块详解
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • js对象的深浅拷贝
  • Laravel核心解读--Facades
  • rc-form之最单纯情况
  • yii2权限控制rbac之rule详细讲解
  • 闭包--闭包作用之保存(一)
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 利用DataURL技术在网页上显示图片
  • 如何进阶一名有竞争力的程序员?
  • 优化 Vue 项目编译文件大小
  • 06-01 点餐小程序前台界面搭建
  • 《天龙八部3D》Unity技术方案揭秘
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (笔试题)分解质因式
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET轻量级ORM组件Dapper葵花宝典
  • .net中生成excel后调整宽度
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [bzoj 3534][Sdoi2014] 重建
  • [C/C++] C/C++中数字与字符串之间的转换
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [CSS] 点击事件触发的动画
  • [GN] Vue3.2 快速上手 ---- 核心语法2
  • [HTML]HTML5实现可编辑表格
  • [Loadrunner参数化]一个文件输两列参数的取值
  • [office] excel中weekday函数的使用方法 #学习方法#微信#媒体
  • [one_demo_16]直接插入排序的demo