700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 面试题57 - II. 和为s的连续正数序列

面试题57 - II. 和为s的连续正数序列

时间:2023-06-22 22:51:09

相关推荐

面试题57 - II. 和为s的连续正数序列

题解:

https://leetcode-/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/mian-shi-ti-57-ii-he-wei-sde-lian-xu-zheng-shu-x-2/

(1)双指针法

(2)停止条件l<r,因为如果l>=r,则l+r大于target

class Solution {public:vector<vector<int>> findContinuousSequence(int target) {vector<vector<int>> result;if(target <= 0) {return result;}int l = 1;int r = 2;while(l < r) {// 计算[l,r]之间数字的和int sum = (l + r)*(r-l+1)/2;if(sum == target) {vector<int> temp;temp.reserve(r-l+1);// 记录结果for(int i = l; i <= r; ++i) {temp.push_back(i);}result.push_back(std::move(temp));++l;} else if(sum > target) {// 比taget大,左指针增加++l;} else {++r;}}return result;}};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。