【算法题】228. 汇总区间

题目:

给定一个 无重复元素 的 有序 整数数组 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 按升序排列 # java代码: class Solution { public List summaryRanges(int[] nums) { List ret = new ArrayList(); 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; } }

相关推荐
weixin_458872611 小时前
东华复试OJ二刷复盘2
算法
Charlie_lll1 小时前
力扣解题-637. 二叉树的层平均值
算法·leetcode
爱淋雨的男人2 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶
wen__xvn2 小时前
模拟题刷题3
java·数据结构·算法
滴滴答滴答答2 小时前
机考刷题之 6 LeetCode 169 多数元素
算法·leetcode·职场和发展
圣保罗的大教堂2 小时前
leetcode 1980. 找出不同的二进制字符串 中等
leetcode
Neteen3 小时前
【数据结构-思维导图】第二章:线性表
数据结构·c++·算法
礼拜天没时间.3 小时前
力扣热题100实战 | 第25期:K个一组翻转链表——从两两交换到K路翻转的进阶之路
java·算法·leetcode·链表·递归·链表反转·k个一组翻转链表
Swift社区3 小时前
LeetCode 400 第 N 位数字
算法·leetcode·职场和发展
再难也得平3 小时前
力扣239. 滑动窗口最大值(Java解法)
算法·leetcode·职场和发展