Grokking the Coding Interview: Patterns for Coding Questions
Vote

0% completed

Introduction to Sliding Window Pattern

You are given an array and a number K. Find the average of every group of K neighbouring values.

[1, 3, 2, 6, -1, 4, 1, 8, 2]     K = 5

The word neighbouring is important. The values in each group must be next to one another. Such a group is called a contiguous subarray.

A simple solution starts at every index. It adds the next K values and divides the sum by K.

This repeats a large amount of work. For every starting position, it performs K additions. The time complexity is O(N * K).

Now compare the first two groups:

[1, 3, 2, 6, -1]
   [3, 2, 6, -1, 4]
`

.....

.....

.....

Like the course? Get enrolled and start learning!
Priyanka Bhosale

Priyanka Bhosale

· 2 years ago

Is this course still available for me to access after my monthly subscription expires?

Show 1 reply
A

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.

Show 2 replies
A

Adam Woolhether

· 4 years ago

I'll be writing my solutions in Go, anyone interested in reviewing with me?

S

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?

Show 3 replies
D

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)

Show 1 reply
J

joe

· 4 years ago

sum in the O(n * k) element JS solution wasn't initialized properly as 'let sum'

O

ornella

· 5 years ago

WindowStart is not in the for statement, so it shouldn't iterate, so how it is moving across the array?

Show 1 reply
O

ornella

· 5 years ago

Why windowSum is a float?

Show 1 reply

Reading Progress

0%


Vote for new content