C# 汇总区间

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 按升序排列 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/summary-ranges # 解决方案: ## 提供思路 ## 当我在提交代码的时候,程序报错了,仔细一看,发现nums是一个空数组。另外还有一种特殊情况,就是数组只有一个数字的时候,这样子就直接输出就好了。解题时最主要的步骤是判断当前数字是否为数组的下一项数字的前一位,满足了就继续,不满足就输出已满足的最大项。 ## 上代码: ```csharp public class Solution { public IList SummaryRanges(int[] nums) { List list = new List(); if (nums.Length == 0) { return list; } else if (nums.Length == 1) { list.Add(nums[0].ToString()); return list; } int start = nums[0]; int cache = nums[0]; bool CanContinue = false; for (int i = 0; i < nums.Length; i++) { if (i == 0) { if (nums[i + 1] != nums[i] + 1) { list.Add(nums[i].ToString()); } continue; } int num = nums[i]; if (num - cache == 1) { cache = num; CanContinue = true; if (nums.Length == i + 1) { list.Add(start.ToString() + "->" + cache.ToString()); } } else { if (CanContinue) { list.Add(start.ToString() + "->" + cache.ToString()); CanContinue = false; } start = num; cache = num; if ((nums.Length > i + 1 && nums[i + 1] != nums[i] + 1) || (nums.Length == i + 1)) { list.Add(nums[i].ToString()); } } } return list; } } ``` ## 个人感悟:开始不知所云,说人话就是,123这种连在一起的就输入 1---\>3,如果不连续了,1,3这种就直接输出1,3。是不是就没那么闹心了?然后考虑下空数组。 以上是碰到的第二百二十八题,后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢! ![在这里插入图片描述](https://file.jishuzhan.net/article/1685530017464848385/1a72ec08241941939d6aeb9cca39814e.jpeg)

相关推荐
liulilittle6 分钟前
C++判断wchar_t空白字符
开发语言·c++
Wenhao.15 分钟前
LeetCode Hot100 腐烂的橘子
算法·leetcode·职场和发展
张人玉22 分钟前
Prism 框架笔记及实例
c#·wpf·prism
花阴偷移23 分钟前
kotlin语法(上)
android·java·开发语言·kotlin
XuanRanDev26 分钟前
【编程语言】Kotlin快速入门 - 泛型
开发语言·kotlin
普通网友26 分钟前
Android kotlin Jetpack mvvm 项目
android·开发语言·kotlin
Crogin29 分钟前
快速简单入门Kotlin——基础语法(第一天)
android·开发语言·kotlin
qq_3363139331 分钟前
java基础-set系列集合
java·开发语言·python
·心猿意码·34 分钟前
告别版本地狱:C# 中央包管理
c#
k***459938 分钟前
C#数据库操作系列---SqlSugar完结篇
网络·数据库·c#