problem
Given a sorted integer array without duplicates, return the summary of its ranges.
For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].
题解
每一个区间的起点nums[i]加上j是否等于nums[i+j]
参考
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: vector<string> summaryRanges(vector<int>& nums) { int i = 0, j = 1, n; vector<string> res; n = nums.size(); while(i < n){ j = 1; while(j < n && nums[i+j] - nums[i] == j) j++; res.push_back(j <= 1 ? to_string(nums[i]) : to_string(nums[i]) + "->" + to_string(nums[i + j - 1])); i += j; } return res; } };
|