Cover image for Interview Classic 150 Questions P228 Summary Ranges

Interview Classic 150 Questions P228 Summary Ranges


Timeline

Timeline

2025-11-17

init

range

Problem:

Just count each range.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
#include <vector>#include <string>using std::vector;using std::string;class Solution {    public:	vector<string> summaryRanges(vector<int> &nums)	{		vector<string> res;		int i, n = nums.size();		if (n == 0) {			return res;		}		int start = nums[0];		for (i = 1; i < n; i++) {			if (nums[i] != nums[i - 1] + 1) {				// start..i-1				string curr;				curr.append(std::to_string(start));				if (nums[i - 1] > start) {					curr.append("->");					curr.append(std::to_string(nums[i - 1]));				}				res.push_back(curr);				start = nums[i];			}		}		string curr;		curr.append(std::to_string(start));		if (nums[n - 1] > start) {			curr.append("->");			curr.append(std::to_string(nums[n - 1]));		}		res.push_back(curr);		return res;	}};int main(){	vector<int> nums = { 0, 1, 2, 4, 5, 7 };	Solution S;	S.summaryRanges(nums);}
Loading comments…