## Google Interview Question for Software Engineers

• 0

Country: United States

Comment hidden because of low score. Click to expand.
0
of 0 vote

Based on the question description we see that we need to consider only those integers whose value is = k since elements with value > k and value < k are rejected. So if some window has value k then answer is k else answer is 0. So the problem changes to check each window if it has k in it or not. To do so we can just keep a running window and store the last occurrence of k. Following is the code:

``````vector<int> average(vector<int> stream, int k, int w) {
int i, p = 0;
int n = stream.size();
int lastIndexOfK = -1;
vector<int> ans;
for(i = 0; i < n; ++i) {
int p = i % w;
if(stream[i] == k) {
lastIndexOfK = p;
}
if(lastIndexOfK > p || (lastIndexOfK == 0 && p == 0)) {
lastIndexOfK = -1;
}
if(lastIndexOfK != -1) {
ans.push_back(k);
}
}
return ans;
}``````

Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

### Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

### Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.