【剑指OFFER】57 - II. 和为s的连续正数序列
发布日期:2021-06-29 19:47:02 浏览次数:2 分类:技术文章

本文共 982 字,大约阅读时间需要 3 分钟。

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

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

示例 1:

输入:target = 9

输出:[[2,3,4],[4,5]]

示例 2:

输入:target = 15

输出:[[1,2,3,4,5],[4,5,6],[7,8]]

限制:

1 <= target <= 10^5

答案:

class Solution {
public int[][] findContinuousSequence(int target) {
//从头遍历到n/2+1 ArrayList
nums = new ArrayList<>(); int l = 1, r = 1, sum = 0, all = target, limit = target / 2 + 1; for(; l < limit; l++){
while(all - r >= 0){
all -= r; r++; } if(all == 0){
int[] temp = new int[r - l]; for(int i = 0; i < temp.length; i++){
temp[i] = l + i; } nums.add(temp); } all = target; r = l + 1; } int[][] n = new int[nums.size()][]; for(int i = 0; i < nums.size(); i++){
n[i] = nums.get(i); } return n; }}

转载地址:https://darkness.blog.csdn.net/article/details/115531264 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】58 - I. 翻转单词顺序
下一篇:【剑指OFFER】57. 和为s的两个数字

发表评论

最新留言

很好
[***.229.124.182]2024年04月05日 01时14分00秒