package _interview_question
/**
* Given an array of integers size 'n'
Our aim is to calculate the maximum sum of 'k'
consecutive elements in the array
//input
const arr = [100,200,300,400]
k = 2
//Output
700
* */
class Solution12 {
/*
* Solution: Sliding Window, Time complexity:O(n), Space complexity:O(1)
* */
fun maximumSumOfKConsecutive(nums: IntArray, k: Int): Int {
if (nums.isEmpty()) {
return 0
}
var max = 0
var windowSum = 0
for (i in 0 until k) {
windowSum += nums[i]
}
for (i in k until nums.size) {
/*
* set up the sum of range, for example: 1,2,3,4; k=1
* windowSum = 1+2 after below, then add 3 and minus 1 at first loop and keep looping
* */
windowSum += nums[i]
windowSum -= nums[i - k]
max = Math.max(windowSum, max)
}
return max
}
}