剑指 Offer 57 - II. 和为s的连续正数序列

news/2024/11/7 23:33:32/

题目: 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。

序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

示例 1:

输入:target = 9
输出:[[2,3,4],[4,5]]

示例 2:

输入:target = 15
输出:[[1,2,3,4,5],[4,5,6],[7,8]]

思路:

https://www.bilibili.com/video/BV1RL4y1E7JC/?spm_id_from=333.788&vd_source=cc3333a27046bad449a2b6818cc4149c
思路:
如果right小于目标值时候,继续循环遍历,如果总和小于target,则right++,并讲该值加到sum中,
如果总和大于target了,说明以该left为起点的值找不到总和为target的,所以left++,
如果找到了总和后,循环遍历当前的left和right,加入到path中,说明当前以left开始的满足的条件,
下次就应该从left++开始了,因此从sum中减去left,再让left++,清除一下path,防止下次里边还有值。

class Solution {
public:vector<vector<int>> sumordered(int target) {vector<vector<int>> result;vector<int> path;int left = 1;int right = 2;int sum = left + right;while (right < target) {if (sum < target) {right++;sum += right;}else if (sum > target) {sum -= left;left++;}else {for (int i = left; i <= right; i++) {path.push_back(i);}sum -= left;left++;result.push_back(path);path.clear();}}return result;}
};int main() {int target = 9;Solution ss;vector<vector<int>> result = ss.sumordered(target);for (auto& res:result) {for (auto& ch:res) {cout << ch << " ";}cout << endl;}return 0;
}

http://www.ppmy.cn/news/245158.html

相关文章

Centos Linux 操作系统中配置Gitlab服务器

基本准备 安装常用的工具包 linux根据操作系统的不同&#xff0c;有不同的安装工具&#xff0c;如&#xff0c; 操作系统 格式 工具 Debian .deb apt, apt-cache, apt-get, dpkg Ubuntu .deb apt, apt-cache, apt-get, dpkg CentOS .rpm yum Fedora .rpm dnf …

Sentinel-1(Resolution、Pixel Spacing)

目录 10m&#xff1f;还是20*22m&#xff1f; Resolution和Pixel Spacing 10m&#xff1f;还是20*22m&#xff1f; Sentinel-1 SAR GRD的分辨率为10m&#xff0c;基本上是常识了https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S1_GRD#description…

springboot+vue游戏项目销售发行系统设计与实现

本游戏销售平台管理员功能有个人中心&#xff0c;用户管理&#xff0c;厂商管理&#xff0c;游戏类型管理&#xff0c;游戏信息管理&#xff0c;众筹项目管理&#xff0c;项目投资管理&#xff0c;论坛管理&#xff0c;管理员管理&#xff0c;系统管理等。厂商发布游戏&#xf…

CAD2006注册机不能显示激活码

原因&#xff1a;因为你的申请号不正确啊&#xff01; 解决方法&#xff1a;改变申请号 Cad2006 如何改变申请号(一种简单的方法) 找到C:\Documents and Settings\All Users\Application Data\Autodesk\Software Licenses 删除里面的所有文件&#xff0c;应该是类似BXXXXXX.da…

cad2020直装版无需注册机

不负众望&#xff0c;众望所归&#xff0c;cad2022也正式推出了&#xff0c;更新了不少全新的功能&#xff0c;例如全新跨平台3D图形预览功能&#xff0c;可充分利用当今的GPU和多核处理器&#xff0c;还可以共享当前图纸&#xff0c;以便在AutoCAD Web应用程序中进行查看或编辑…

Office 2010注册机

偶然的机会得到了一个注册机&#xff0c;不知道是否对所有的2010版都管用&#xff0c;给大家分享一下&#xff0c;具体操作见附件说明&#xff0c;三步就搞定了。如果不能用也别说我&#xff0c;我的是可以的。

AutoCAD2004下载AutoCAD2004中文版安装教程

AutoCAD2004&#xff08;32/64位&#xff09;下载&#xff1a;https://pan.baidu.com/s/1n4u90xT_9B9rldhl_Atz_w 【下载方法】复制下载链接&#xff0c;粘贴纸浏览器网址栏&#xff08;无提取码&#xff09;打开&#xff0c;保存到网盘&#xff0c;打开网盘客户端&#xff0c;…

Autocad2017破解版下载|Autodesk Autocad 2017中文破解版下载 64位(附注册机/序列号)

Autocad2017是Autodesk公司开发的自动计算机辅助设计软件,可用于二维绘图、详细绘制、设计文档和基本三维设计,它具有良好的用户界面,允许用户通过交互菜单或命令行方式来进行各种操作,包括图形绘制、图形编辑、图形转换、对象捕捉等等,同时软件的多文档环境还可让非专业人…