Array 训练集
题目
解题方法
C++
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> res;
for(int i=0; i < nums.size(); i++){
int begin = i;
while(i + 1 < nums.size() && nums[i+1] == nums[i] + 1) i++;
int end = i;
if(end > begin) res.push_back(to_string(begin) + "->" + to_string(end));
else res.push_back(to_string(begin));
}
return res;
}
Python
def summaryRanges(self, nums: List[int]) -> List[str]:
range1 = []
res = []
for i in range(len(nums)):
if i + 1 < len(nums) and nums[i] + 1 == nums[i + 1]:
range1.append(i)
range1.append(i + 1)
else:
if(len(range1) == 0):
res.append(str(nums[i]))
else:
res.append(str(range1[0]) + "->" + str(range1[-1]))
range1.clear()
return res
复杂度分析
C++
O ( n 2 ) \mathcal{O}(n^2) O(n2)
Python
O ( n ) \mathcal{O}(n) O(n)