美文网首页
从 n 个数中取连续的 m 个数, 使其和最大

从 n 个数中取连续的 m 个数, 使其和最大

作者: 风骚的风 | 来源:发表于2018-07-06 23:17 被阅读0次

穷举法的时间复杂度为 O(nm - m^2), 略去实现.

以下实现的时间复杂度为 O(n - m), 空间复杂度为 O(1).

public class Test {

    public static void main(String[] args) {
        int[] numberArr = {1, 2, 4, 6, 2, 1, 0, -1, 8, 10, 0};
        int range = 4;
        int result = find(numberArr, range);
        System.out.println("满足条件的子集的起始索引为: " + result);
    }

    public static int find(int[] numberArr, int range) {
        int target = 0, i = 0, j = range;
        int isum = 0, jsum = 0;

        for (; j < numberArr.length; i++, j++) {
            isum += numberArr[i];
            jsum += numberArr[j];
            if (isum < jsum) {
                target = j + 1 - range;
                isum = 0;
                jsum = 0;
            }
        }

        return target;
    }
}

相关文章

  • 从 n 个数中取连续的 m 个数, 使其和最大

    穷举法的时间复杂度为 O(nm - m^2), 略去实现. 以下实现的时间复杂度为 O(n - m), 空间复杂度...

  • [蓝桥杯]最大乘积

    问题 1936: [蓝桥杯][算法提高VIP]最大乘积 题目描述 对于n个数,从中取出m个数,如何取使得这m个数的...

  • 全排列算法的理解与实现(递归+字典序)

    一、全排列的概念 排列:   从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个...

  • 从 n 个数中取出两个数, 使其和为 a

    采用穷举法的话, 其时间复杂度为 O((n^2)/2). 略去穷举法的实现. 采用如下实现, 其时间复杂度为 O(...

  • js从数组中取第n个数前后的m个数

    js从一个数组中取n个数,从第n个数开始,与之相邻的前和后各取一半;若前面不够一半时,从后面补上,若后面不够一半时...

  • 【习题36】

    【程序36】题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

  • 二分找最大中最小,最小中最大

    题意:一个连续N个数的数组,将它分割为连续的m段,m段中每段的和中有一个最大值,现在使最大值最小: 相反的使 最小...

  • 打卡7.28

    题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。 程序: #include int...

  • [Python] 从m个数中随机取n个

    随机取的n个数字可以重复 这样取出来的数字是有可能重复的,并且允许 m

  • 组合

    上述代码中列出了 全组合的非递归、递归解法 从n个数中取m个的各种组合形式输出

网友评论

      本文标题:从 n 个数中取连续的 m 个数, 使其和最大

      本文链接:https://www.haomeiwen.com/subject/myliuftx.html