Leetcode 228. Summary Ranges

Array 训练集

题目

leetcode 228

解题方法

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值