First Negative In Every Window

Posted: 24 Sep, 2020
Difficulty: Moderate

PROBLEM STATEMENT

Try Problem

You have been given an array of integers 'ARR' of size 'N'. You are also provided with a positive integer 'K'.

Your task is to find the first negative element in every window (contiguous subarray) of length 'K'. If there is no negative element in a window, then print 0 for that window.

For example:
For the given array 'ARR' = [5, -3, 2, 3, -4] and 'K' = 2.
Output = -3 -3 0 -4

We have four windows of length 2 in 'ARR'
[5, -3] having -3 as first negative element.
[-3, 2] having -3 as first negative element.
[2, 3] having no negative element
[2, -4] having -4 as first negative element.
Input Format:
The first line of input contains an integer 'T' representing the number of test cases or queries to be processed. Then the test case follows.

The first line of each test case contains two single space-separated integers 'N' and 'K' representing the size of the array/list and the positive integer denoting the length of the window respectively.

The second line of each test case contains 'N' single space-separated integers representing the array/list elements.
Output Format:
For each test case, print (N - K + 1) single space-separated integers representing the first negative element in each of the windows of length 'K'.

Print output of each test case in a separate line.
Note:
You are not required to print the expected output; it has already been taken care of. Just implement the function. 
Constraints:
1 <= T <= 10
1 <= N <= 5 * 10^4
1 <= K <= N
-10^9 <= ARR[i] <= 10^9

Time Limit: 1 sec
Approach 1

We have a simple brute force solution for this problem. We will traverse in every subarray of length ‘K’ and find our first negative element for each of them. For this, we will use two nested loops. 

 

The outer loop will give us the starting point for each window of length ‘K’ and the inner loop will traverse in this window to find our first negative element. We will keep updating our answer for each window in another array.

Try Problem