面试题57-II.和为s的连续正数序列
2024-09-04 21:19:45
面试题57-II.和为s的连续正数序列
1.题目
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
2.标准答案
LeetCode-面试题57-II.和为s的连续正数序列-官方题解
- 枚举+暴力
- 枚举+数学优化
- 双指针
3.心得
由于面试完华为,最近有些松懈,好久没有做题,我拿到题第一眼是有点懵的。
关键点是要理解到,连续正数序列的和,其实是个差为1的等差数列的和。也就是说,只要知道这个等差数列的头和尾,就能知道这个数列的和,将其与s比较即可。
理解了关键点,接下来的思路就很多了。
首先是暴力枚举,枚举数列的头和尾即可。
其次我想到的是双指针法,因为最近面试刚手撕了三数之和,所以我第一时间想到了这种方法。
class Solution {
public:
vector<vector<int>> findContinuousSequence(int target) {
vector<vector<int>>vec;
vector<int> res;
for (int l = 1, r = 2; l < r;){
int sum = (l + r) * (r - l + 1) / 2;
if (sum == target){
res.clear();
for (int i = l; i <= r; ++i) res.emplace_back(i);
vec.emplace_back(res);
l++;
}
else if (sum < target) r++;
else l++;
}
return vec;
}
};
最新文章
- jQuery核心技术-----------------------------------------------------()
- GridView 和DataGrid区别
- asp.net—缓存
- mac下mysql的安装
- mac os 中类似于Linux的yum工具,或ubuntu的apt-get工具Homebrew
- 怎么样打印加密PDF文件
- Linux gcc编译(动态库,静态库)
- java 图片处理
- build.gradle 使用tips
- 使用intellij idea搭建MAVEN+springmvc+mybatis框架
- [swustoj 404] 最小代价树
- mac ssh会话复制
- Google Chrome中的高性能网络(一)
- Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信
- 使用Restify+superagent做数据转发
- python爬虫之xpath的基本使用
- JDBC设计理念浅析 JDBC简介(一)
- HADOOP高可用机制
- Django-rest-framework 接口实现 版本控制 versioning
- 学习Struts--Chap03:struts.xml常用配置(基础)
热门文章
- python_数据类型_总结
- E. Alice and the Unfair Game(推导线段树)
- supervisor安装与配置实践版
- dubbo服务调用
- Exchange Online 权限管理
- Java逆向工程(数据库表生成java类)
- asp.net 管道处理模式
- perf4j+spring+aop 配置 注解方式
- Java 9 新特性 – 内部类的方块操作符
- resume|issue|transmit|sake|obliged|beyond her wildest dreams|echo|transmission|immense|consistent |convey to| boasted|satisfaction|rub|enrol|demonize