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

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是一个空数组。另外还有一种特殊情况,就是数组只有一个数字的时候,这样子就直接输出就好了。解题时最主要的步骤是判断当前数字是否为数组的下一项数字的前一位,满足了就继续,不满足就输出已满足的最大项。

上代码:

public class Solution
{public IList<string> SummaryRanges(int[] nums){List<string> list = new List<string>();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。是不是就没那么闹心了?然后考虑下空数组。

以上是碰到的第二百二十八题,后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢!
在这里插入图片描述

http://www.lryc.cn/news/98570.html

相关文章:

  • 加利福尼亚大学|3D-LLM:将3D世界于大规模语言模型结合
  • HCIA实验四
  • 常见的算法
  • Jetbrains 2023.2教程
  • OpenLayers入门,OpenLayers地图初始化时如何设置默认缩放级别、设置默认地图中心点、最大缩放级别和最小缩放级别以及默认坐标系
  • css实现步骤条中的横线
  • 【业务功能篇57】Springboot + Spring Security 权限管理 【上篇】
  • 云计算需求激增带来的基础设施挑战及解决方案
  • R语言中的函数23:zoo::rollmean, rollmax, rollmedian, rollsum等等
  • 数据结构—数组和广义表
  • 服务器负载均衡算法有哪些
  • 2023年深圳杯数学建模B题电子资源版权保护问题
  • Easyui中datagrid切换页码后,再次根据其他条件查询,重置为第一页,序号从1开始显示
  • 随笔03 考研笔记整理
  • 一次线上OOM问题的个人复盘
  • 【机器学习】基础知识点的汇总与总结!更新中
  • NLP杂记
  • 算法通过村第二关-链表白银笔记
  • 力扣题库刷题笔记75--颜色分类
  • 《面试1v1》如何提高远程用户的吞吐量
  • 论文笔记--Distilling the Knowledge in a Neural Network
  • Mac上安装sshfs
  • MQ公共特性介绍 (ActiveMQ, RabbitMQ, RocketMQ, Kafka对比)
  • 灵雀云Alauda MLOps 现已支持 Meta LLaMA 2 全系列模型
  • 技术方案模版
  • 【Linux命令200例】cut强大的文本处理工具
  • 《论文阅读》具有特殊Token和轮级注意力的层级对话理解 ICLR 2023
  • C# 定时器封装版
  • 前端学习——Vue (Day4)
  • 如果你是一个嵌入式面试官,你会问哪些问题?