文章目录

  • 题目描述
  • 思路 & 代码
    • 二刷

题目描述

  • 花了不少时间来优化= =,很好的一道用来理解滑动窗口的题~

思路 & 代码

  • 要点:为了 O(n) 复杂度,左右边界都只能往右走
  • 滑动窗口:存储当前连续正数序列
class Solution {// 左边界、右边界都只能往右走 public int[][] findContinuousSequence(int target) {ArrayList<int[]> ans = new ArrayList<>();int left = 1, right = 1;int sum = 0;// 推论1:满足题目要求的序列,最大开头为 target / 2while(left <= target / 2){// 1. 增大窗口if(sum < target){sum += right++;}// 2. 缩小窗口:满足则加入,然后找 left + 1 开头的序列;否则直接寻找。else {// 序列满足的情况:加入答案if(sum == target){int[] ansArray = new int[right - left];for(int i = 0; i < ansArray.length; i++){ansArray[i] = left + i;}ans.add(ansArray);}// 缩小sum -= left++;}}// 这行转化代码有必要记一下。。return ans.toArray(new int[ans.size()][]);}
}

二刷

  • 核心还是滑动窗口,注意维护。
  • 数组的处理也要注意噢
class Solution {public int[][] findContinuousSequence(int target) {ArrayList<int[]> ans = new ArrayList<>();int left = 1, right = 1;int sum = 0;while(left <= target / 2) {if(sum < target) {sum += right++;}else {if(sum == target) {int[] arr = new int[right - left];for(int i = 0; i < arr.length; i++) {arr[i] = left + i;}ans.add(arr);}sum -= left++;}}return ans.toArray(new int[ans.size()][]);}
}

【LeetCode笔记】剑指 Offer 57- II. 和为 s 的连续正数序列(Java、滑动窗口、二刷)相关推荐

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

    [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 文章目录 [LeetCode]剑指 Offer 57 - II. 和为s的连续正数序列 一.求和公式 二.滑动窗口(双指针 ...

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

    剑指 Offer 57 - II. 和为s的连续正数序列 Ideas 区间问题首先想到用双指针. 因为这题没有给定数组,其实相当于就是一个从1到target的数组,然后直接套双指针的模板就可以了. 双 ...

  3. 剑指 Offer 57 - II. 和为s的连续正数序列 思考分析

    输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:target = 9 ...

  4. Leetcode 剑指 Offer 57 - II. 和为s的连续正数序列 (每日一题 20210809)

    输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数).序列内的数字由小到大排列,不同序列按照首个数字从小到大排列.示例 1:输入:target = 9 输出: ...

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

    双指针 1)终止条件target = = sum: 2)target > sum 的时候,left++: 3)target < sum 的时候,right++: 5)sum = ([rig ...

  6. 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)

    1. 题目 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 示例 1: 输入:targe ...

  7. 剑指offer面试题57 - II. 和为s的连续正数序列(双指针)(滑动窗口)

    题目描述 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数). 序列内的数字由小到大排列,不同序列按照首个数字从小到大排列. 思路 详见链接 代码 clas ...

  8. 【剑指offer{40-44}】和为S的连续正数序列、和为S的两个数字、左旋转字符串、翻转单词顺序列、扑克牌顺子

    文章目录 和为S的连续正数序列 题目描述 C++代码 和为S的两个数字 题目描述 C++代码 左旋转字符串 题目描述 C++代码 翻转单词顺序列 题目描述 C++代码 扑克牌顺子 题目描述 C++代码 ...

  9. 【LeetCode】剑指 Offer 59 - II. 队列的最大值

    [LeetCode]剑指 Offer 59 - II. 队列的最大值 文章目录 [LeetCode]剑指 Offer 59 - II. 队列的最大值 package offer;import java ...

  10. 【LeetCode】剑指 Offer 58 - II. 左旋转字符串

    [LeetCode]剑指 Offer 58 - II. 左旋转字符串 文章目录 [LeetCode]剑指 Offer 58 - II. 左旋转字符串 一.字符串切片 二.列表遍历拼接 三.字符串遍历拼 ...

最新文章

  1. linux命令 iperf-网络性能测试工具
  2. 在FFT分析在而立之年的展望与总结
  3. goland os.Open 路径错误
  4. Elasticsearch5.x 升级-插件
  5. 位运算实现用户留存率
  6. 扩展Reporting Services和SQL Server 2016中的更改
  7. 阿里OSS对象存储,实现图片上传进度显示ProgressListener;
  8. ocr 哪个好 外文_5 款堪称神器的高质量软件,每一款都好用到不想卸载
  9. 【语音隐写】基于matlab GUI DCT+DWT音频数字水印嵌入提取【含Matlab源码 836期】
  10. OLED屏显和汉字点阵编码原理
  11. bcnf分解算法_BCNF范式及其分解方法(对一次Lab作业的总结)
  12. 摄影欣赏:30幅五光十色的精美秋天风景摄影作品
  13. 这10个实用网站/app,至少让你的效率翻一倍!
  14. canvas整体放大_Canvas实现图片放大缩小移动操作
  15. python画三维立体图完整代码_如何用Matplotlib 画三维图的示例代码
  16. Amber进行DNA建模详细步骤
  17. expected START_TAG or END_TAG not TEXT (position: TEXT seen
  18. ubuntu控制台访问u盘_ubuntu中查看u盘的方法
  19. 大数据技术原理与应用之【Spark】习题
  20. 有感FOC算法学习与实现总结(转)

热门文章

  1. android ocr识别源码_身份证识别OCR解决手动输入繁琐问题
  2. 产品运营 跨境支付_餐饮网店的运营 跨境支付哪个平台最好
  3. python idle 中文_Python IDLE 中文乱码问题
  4. 逻辑回归实现多分类任务(python+TensorFlow+mnist)
  5. React之JSX入门
  6. 数据结构之二叉树的遍历
  7. html没有插件怎么办,html网页包插件没有插入options.title
  8. 计算机组成原理算术运算实验报告,计算机组成原理算术逻辑运算实验报告
  9. 对称加密算法原理与常用实现
  10. kubernetes(k8s)