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

1.题目

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

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

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

2.标准答案

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

  1. 枚举+暴力
  2. 枚举+数学优化
  3. 双指针

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;
}
};

最新文章

  1. jQuery核心技术-----------------------------------------------------()
  2. GridView 和DataGrid区别
  3. asp.net—缓存
  4. mac下mysql的安装
  5. mac os 中类似于Linux的yum工具,或ubuntu的apt-get工具Homebrew
  6. 怎么样打印加密PDF文件
  7. Linux gcc编译(动态库,静态库)
  8. java 图片处理
  9. build.gradle 使用tips
  10. 使用intellij idea搭建MAVEN+springmvc+mybatis框架
  11. [swustoj 404] 最小代价树
  12. mac ssh会话复制
  13. Google Chrome中的高性能网络(一)
  14. Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信
  15. 使用Restify+superagent做数据转发
  16. python爬虫之xpath的基本使用
  17. JDBC设计理念浅析 JDBC简介(一)
  18. HADOOP高可用机制
  19. Django-rest-framework 接口实现 版本控制 versioning
  20. 学习Struts--Chap03:struts.xml常用配置(基础)

热门文章

  1. python_数据类型_总结
  2. E. Alice and the Unfair Game(推导线段树)
  3. supervisor安装与配置实践版
  4. dubbo服务调用
  5. Exchange Online 权限管理
  6. Java逆向工程(数据库表生成java类)
  7. asp.net 管道处理模式
  8. perf4j+spring+aop 配置 注解方式
  9. Java 9 新特性 – 内部类的方块操作符
  10. resume|issue|transmit|sake|obliged|beyond her wildest dreams|echo|transmission|immense|consistent |convey to| boasted|satisfaction|rub|enrol|demonize