0% completed
Introduction to Sliding Window Pattern
You are given an array and a number K. Find the average of every block of K neighbouring elements.
[1, 3, 2, 6, -1, 4, 1, 8, 2] K = 5
The direct approach is to take each starting index, add up the next five numbers, and divide. That is K additions for every one of the N starting points, so about O(N * K) work.
Now compare two neighbouring blocks. The block starting at index 0 holds 1, 3, 2, 6, -1. The block starting at index 1 holds 3, 2, 6, -1, 4. Four of the five numbers are the same. The direct approach adds those four again for no reason.
.....
.....
.....
aj
· 4 years ago
How is the complexity of brute force O(N*K)? N is the number of elements in input array - which in the example is 9. But the outer loop doesn't run 9 times does it? It will only run from 0 to arr.length - K i.e 4 times.
Jake Bartles
· 4 years ago
is it possible to download this course for offline access?
Daniel Lim
· 4 years ago
What is the difference between these two ranges of for loops:
for i in range(len(arr)-K+1)
and
for i in range(K)
ornella
· 4 years ago
Why windowSum is a float?
srilu
· 4 years ago
In the Brute Force Python Solution why is "for i in range(len(arr)-K+1) " used instead of just " for i in range(K)" ? Aren't these two conditions the same thing?
Adam Woolhether
· 4 years ago
I'll be writing my solutions in Go, anyone interested in reviewing with me?
joe
· 4 years ago
sum in the O(n * k) element JS solution wasn't initialized properly as 'let sum'
ornella
· 4 years ago
WindowStart is not in the for statement, so it shouldn't iterate, so how it is moving across the array?
Priyanka Bhosale
· 2 years ago
Is this course still available for me to access after my monthly subscription expires?