码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode OJ:Summary Ranges(概括区间)

时间:2015-10-21 20:41:44      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

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"].

就是概括区间的方式把一个数组表示下来,例如123用1->3代替,自己写的很乱 ,维护两个指针就可以了:

 1 class Solution {
 2 public:
 3     vector<string> summaryRanges(vector<int>& nums) {
 4         int start = 0;
 5         stringstream str;
 6         vector<string> ret;
 7         int sz = nums.size();
 8         if(sz == 0) return ret;
 9         if(sz == 1){
10             str << nums[0];
11             ret.push_back(str.str());
12             return ret;
13         }
14         //str << nums[0];
15         start = nums[0];
16         for(int i = 1; i < sz; ++i){
17             if(nums[i] == nums[i-1] + 1) continue;
18             if(start != nums[i - 1])  //防止单个数字是一个区间的情况
19                 str << start << "->" << nums[i - 1];
20             else
21                 str << start;
22             ret.push_back(str.str());
23             start = nums[i];
24             str.str("");
25         }
26         if(nums[sz - 1] == nums[sz - 2] + 1){
27             str << start << "->" << nums[sz - 1];
28             ret.push_back(str.str());
29         }else{
30             str << nums[sz - 1];
31             ret.push_back(str.str());
32         }
33         return ret;
34     }
35 };

 

LeetCode OJ:Summary Ranges(概括区间)

标签:

原文地址:http://www.cnblogs.com/-wang-cheng/p/4898723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!