1
function convertNumber(num) {2
return parseFloat(num.toFixed(5));4
function findMedian(arr) {6
let end = arr.length - 1;8
if ((end - start + 1) % 2 === 0) {10
(arr[Math.floor((end + start) / 2)] +11
arr[Math.floor((end + start) / 2) + 1]) /14
ans = arr[Math.floor((end + start) / 2)];16
return convertNumber(ans);18
function updateWinArray(arr) {19
if (arr.length === 1) {22
let ele = arr[arr.length - 1];24
for (i = arr.length - 2; i >= 0; i--) {33
function binarySearch(arr, ele) {37
while (start <= end) {38
mid = Math.floor((start + end) / 2);39
if (arr[mid] === ele) {41
} else if (ele > arr[mid]) {48
var medianSlidingWindow = function (nums, k) {53
while (j < nums.length) {55
updateWinArray(winArr);58
} else if (j - i + 1 === k) {59
let ans = findMedian(winArr);61
let indexOfiEle = binarySearch(winArr, nums[i]);62
winArr.splice(indexOfiEle, 1);