我是靠谱客的博主 碧蓝寒风,最近开发中收集的这篇文章主要介绍leetcode面试题57 - Ⅱ 和为s的连续正整数序列leetcode面试题57 - Ⅱ 和为s的连续正整数序列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

leetcode面试题57 - Ⅱ 和为s的连续正整数序列

题目描述

在这里插入图片描述

题目解析

由于所有解均为连续序列,因此可以用滑动窗口进行求解(即双指针法),维护两个指针 left 和 right ,当 sum < target 时 向右移动指针 right ,当sum > target时向右移动指针 left 知道sum < = target 。

class Solution {
    public int[][] findContinuousSequence(int target) {
        List<List<Integer>> res = new ArrayList<List<Integer>>();
        int left = 1;
        int right = 1;
        int sum = 0;
        while(right < target && left <= right){
            sum += right;
            System.out.println("sssss" + sum + "right" + right + "left" + left);
            while(sum > target){
                sum -= left;
                System.out.println("vvv" + sum);
                left ++;
            }
            if(sum == target){
                System.out.println(sum);
                List<Integer> ans = new ArrayList<>();
                for(int i = left; i <= right; i ++){
                    ans.add(i);
                }
                res.add(ans);
            }
            right ++;
        }
        int[][] result = new int[res.size()][];
        int j = 0;
        for(List<Integer> li : res){
            int[] row = new int[li.size()];
            int i = 0;
            for(Integer lii : li){
                row[i ++] = lii;
            }
            result[j ++] = row;
        }
        return result;
    }
}

最后

以上就是碧蓝寒风为你收集整理的leetcode面试题57 - Ⅱ 和为s的连续正整数序列leetcode面试题57 - Ⅱ 和为s的连续正整数序列的全部内容,希望文章能够帮你解决leetcode面试题57 - Ⅱ 和为s的连续正整数序列leetcode面试题57 - Ⅱ 和为s的连续正整数序列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部