关闭

Summary Ranges

150人阅读 评论(0) 收藏 举报
分类:

解决问题的思路:两指针算法

代码如下:

class Solution {
public:
    vector<string> summaryRanges(vector<int>& nums) {
        vector<string> result;
        string buf;
        vector<int>::iterator iter1, iter2;
        iter1 = nums.begin();
        iter2 = nums.begin();
        int counter;
        for(; iter1 < nums.end(); ) {
            buf.clear();
            counter = 0;
            for(iter2 = iter1 + 1; iter2 < nums.end(); ) {
                if((*iter2 - *(iter2 - 1) == 1) || (*iter2 - *(iter2 - 1) == 0)) {
                    iter2++;
                    counter++;
                }else
                    break;
            }
            buf += std::to_string(*iter1);
            if(counter > 0) {
                buf += "->";
                buf += std::to_string(*(iter2 - 1));
            }

            result.push_back(buf);

            iter1 = iter2;
        }
        return result;
    }
};
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:45220次
    • 积分:2275
    • 等级:
    • 排名:第16452名
    • 原创:190篇
    • 转载:5篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论