一只不断成长的藏獒

没什么可以一蹴而就,总会有低迷的时候,但请坚持,相信,只要坚持下去,你总会有变得强大的时候,所以努力吧!...

Summary Ranges

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

代码如下:

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;
    }
};
阅读更多
个人分类: LeetCode
相关热词: summary
上一篇Power of Two
下一篇Implement Stack using Queues
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭