228. 汇总区间
分析
-
遍历数组:用双指针
i
和j
遍历数组,识别连续递增的数字区间 -
扩展区间:如果当前数字和前一个数字连续
nums[j] == nums[j-1] + 1
,继续扩大区间 -
记录区间:
- 如果区间内只有一个数字
j == i + 1
,直接记录该数字 - 如果区间内有多个数字
j > i + 1
,记录区间 “起始值->结束值”
- 如果区间内只有一个数字
-
跳过已处理的区间:将
i
更新为区间的最后一个元素i = j - 1
,继续查找下一个区间
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度为 O(1)
C++代码
|
|