Skip to content

Commit 2f2eee8

Browse files
committed
-Sliding Window Median- solved
1 parent bc3078c commit 2f2eee8

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

Sliding_Window_Median.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public:
3+
vector<double> medianSlidingWindow(vector<int>& nums, int k) {
4+
multiset<int> window(nums.begin(), nums.begin() + k);
5+
auto mid = next(window.begin(), k / 2);
6+
vector<double> medians;
7+
medians.push_back((double(*mid) + *next(mid, k % 2 - 1)) / 2);
8+
for (int i=k; i < (int)nums.size(); i++) {
9+
window.insert(nums[i]);
10+
if(nums[i] < *mid) {
11+
mid--;
12+
}
13+
if(nums[i - k] <= *mid) {
14+
mid++;
15+
}
16+
window.erase(window.lower_bound(nums[i - k]));
17+
medians.push_back((double(*mid) + *next(mid, k % 2 - 1)) / 2);
18+
}
19+
20+
return medians;
21+
}
22+
};

0 commit comments

Comments
 (0)