剑指offer-42-和为s的连续整数序列

和为S的连续正数序列

http://www.nowcoder.com/questionTerminal/c451a3fd84b64cb19485dad758a55ebe

思路

  • 滑动窗口,用一个sumt记录一个队列中的和,如何sumt>sum,出队,sumt-=queue.poll(),小于sum,则入队
  • 求数组区间和就用前缀和,前缀和数组。然后求前缀和两个元素的差,感觉还是用滑动窗口啊。QAQ
import java.util.*;
public class Solution {
    public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
        ArrayList<ArrayList<Integer>> arr=new ArrayList<>();
        int p=0,q=0,sumt=0;
        Queue<Integer> queue=new LinkedList<>();
        while(p<=q &&q<sum){
            if(sumt<sum){
                q++;
                queue.add(q);
                sumt+=q;
            }else if(sumt>sum){
                p++;
                sumt-=queue.poll();
            }else{
                arr.add(new ArrayList<>(queue));
                p++;
                sumt-=queue.poll();
            }
        }
        return arr;
    }
}
剑指offer与数据结构 文章被收录于专栏

本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构

全部评论

相关推荐

12-27 22:29
门头沟学院 Java
点赞 评论 收藏
分享
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
勇敢的突尼斯海怪选钝...:楼主这拒意向话术好得体呀 !求问HR回复态度咋样呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务