劍指 和爲S的連續正數序列

題目鏈接

太久沒寫雙指針了,都忘了,其實這個也不算,只是指定一個窗口,把從左到右中間的數都存起來,我還以爲二分做,結果。。。

class Solution {
public:
    vector<vector<int> > FindContinuousSequence(int sum) {
        vector<vector<int> > ans;
        int l = 1, r = 2;
        int val = 0;
        while(l < r) {
            int num = (l + r) *(r - l + 1) / 2;
            if(num == sum) {
                vector<int> tep;
                for(int i = l; i <= r; i++) {
                    tep.push_back(i);
                }
                ans.push_back(tep);
                l++;
            }
            else if(num > sum) {
                l++;
            }
            else {
                r++;
            }
        }
        return ans;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章