[剑指offer]JT41---和为S的连续正数序列(我称之为尺取法,进退之间张弛有度。)

剑指offer第四十一题

题目如下

在这里插入图片描述

思路与代码

就是穷举了,但是这个暴力可以有简化的
一段成功了就砍头,不会成功了也砍头
懂了吧,砍头很生动,很容易理解吧!

class Solution {
    
    
public:
    vector<vector<int> > FindContinuousSequence(int sum) {
    
    
        vector<vector<int>> res;
        vector<int> kind;
        int total=0;
        for(int i=1;i<sum;i++){
    
    
            if(total+i<sum){
    
    
                kind.push_back(i);
                total+=i;
            }else if(total+i==sum){
    
    
                kind.push_back(i);
                total+=i;
                res.push_back(kind);
                total-=kind[0];
                kind.erase(kind.begin(),kind.begin()+1);
            }else if(total+i>sum){
    
    
                total-=kind[0];
                kind.erase(kind.begin(),kind.begin()+1);
                i--;
            }     
        }
        return res;
    }
};

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42136832/article/details/115025277