黄山网站建设黄山,wordpress添加动态图标,wordpress作者最新评论,宜昌皓月建设工程有限公司网站228 汇总区间
给定一个 无重复元素 的 有序 整数数组 nums 。
返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。
列表中的每个区间范围…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 IListstring SummaryRanges(int[] nums){Liststring list new Liststring();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。是不是就没那么闹心了然后考虑下空数组。
以上是碰到的第二百二十八题后续持续更新。感觉对你有帮助的小伙伴可以帮忙点个赞噢