首页 > 其他分享 >求数组中k个连续子数组的最大和

求数组中k个连续子数组的最大和

时间:2023-08-29 21:33:04浏览次数:38  
标签:窗口 最大 nums int currSum 连续 数组 maxSum

要求长度为 k 的连续子数组的最大和,可以使用滑动窗口的方法来解决。具体步骤如下:

public int findMaxSum(int[] nums, int k) {
    int maxSum = 0;  // 最大和
    int currSum = 0; // 当前窗口的和

    // 第一个窗口的求和
    for (int i = 0; i < k; i++) {
        currSum += nums[i];
    }
    maxSum = currSum;

    // 滑动窗口,每次向右移动一步
    for (int i = k; i < nums.length; i++) {
        currSum += nums[i] - nums[i - k]; // 新增一个元素,减去窗口左侧的元素
        maxSum = Math.max(maxSum, currSum); // 更新最大和
    }

    return maxSum;
}

标签:窗口,最大,nums,int,currSum,连续,数组,maxSum
From: https://www.cnblogs.com/chenyi502/p/17665901.html

相关文章

  • 求两个数的最大公约数
    #include<iostream>#include<iomanip>#include<ctime>#include<cstdlib>usingnamespacestd;intmain(){  inta,b,gcd;  cin>>a>>b;  gcd=a>b?b:a;  while(gcd>1&&(a%gcd!=0||b%gcd!......
  • Oracle查看占用表空间最大的表(排序)
    selectt.owner,t.segment_name,t.tablespace_name,bytes/1024/1024/1024assizes,q.num_rows,t.segment_type fromdba_segmentst leftjoindba_tablesq   ont.segment_name=q.table_name  andt.owner=q.owner wheret.segment_type='TABLE'  andt.tab......
  • 手撕代码之数组
    文章目录一、二维数组中的查找(leetcode240)二、旋转数组的最小数字(leetcode153)三、旋转数组中的查找(leetcode33)四、数组中出现次数超过一半的数字(leetcode169)五、把数组排成最大的数(leetcode179)六、数组中只出现一次的数字(leetcode136)七、排序数组中查找某一个数第一次和最后......
  • 用js reduce 写一个reduce循环遍历数组对象,里面带有if判断
    简单的reduce案例,实际场景中使用不多,这里给到一个常用的遍历数组对象!!varproducts=[{name:"Apple",price:2.5,quantity:3},{name:"Banana",price:1.5,quantity:2},{name:"Orange",price:3,quantity:4},];vartotalPrice=products......
  • 在ardiuno中把String变量#true#2a#3#转化为按照#分隔的数组, 然后再把数组第一个元素
    在Arduino中,你可以使用strtok()函数将一个String变量按照指定的分隔符切割为多个子字符串,并将它们存储到一个数组中。然后,你可以使用strcmp()函数将数组的第一个元素与字符串"true"进行比较。以下是一个示例,演示如何在Arduino中将String变量str按照#分隔符切割......
  • 重新排列后的最大子矩阵
     思路1、计算每个位置上方连续1的个数,表示该位置的行高2、将每一行进行排序,以该行为底,计算每一列的位置索引与行款的关系表示底边长(width=)3、计算面积代码 importjava.math.BigDecimal;importjava.util.*;importjava.util.stream.Collectors;importjava.util......
  • 代码随想录第6天|242.有效的字母异位词;349.两个数组的交集;202.快乐数;1.两数之和;
     unordered_map<int,int>map;  unordered_set<int>result;vector<vector<int>>res(n,vector<int>(n,0));声明了长度为n*n的二维数组在C++中,auto是一个关键字,用于实现类型推导,使编译器能够根据变量的初始化表达式来自动推断其数据类型。它在C++11标准中引入,......
  • 一般图最大匹配
    匈牙利算法寻找的增广路是有向的,其中匹配边的方向唯一,故匈牙利算法适配二分图的匹配。对于存在奇环的一般图,匹配边在增广路中的方向不唯一,不符合匈牙利算法中“一个点不能被访问两次”的限制,故一般图最大匹配不能使用匈牙利算法。带花树算法一般图与二分图区别在于奇环的有......
  • 2834. 找出美丽数组的最小和-360
    找出美丽数组的最小和给你两个正整数:n和target。如果数组nums满足下述条件,则称其为美丽数组。nums.length==n.nums由两两互不相同的正整数组成。在范围[0,n-1]内,不存在两个不同下标i和j,使得nums[i]+nums[j]==target。返回符合条件的美丽数组所可......
  • python中输出键最大、最小的项
     001、输出键最大的项a、>>>dict1={"c":30,"a":40,"b":80,"d":20,"e":60}>>>dict1{'c':30,'a':40,'b':80,'d':20,'e':60}>>&......