leetcode 480 滑動視窗中位數

2021-10-09 11:39:03 字數 409 閱讀 3918

中位數是有序序列最中間的那個數。如果序列的大小是偶數,則沒有最中間的數;此時中位數是最中間的兩個數的平均數。

例如:[2,3,4],中位數是 3

[2,3],中位數是 (2 + 3) / 2 = 2.5

給你乙個陣列 nums,有乙個大小為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 位。你的任務是找出每次視窗移動後得到的新視窗中元素的中位數,並輸出由它們組成的陣列。

主要是維護乙個有序的陣列,每次移動的時候使用二分查詢進行相應的刪除和插入操作。

class solution 

arr[index2] = nums[i+k];

if(k%2==1)else

} return res;

}};

leetcode480 滑動視窗中位數

中位數是有序序列最中間的那個數。如果序列的大小是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給出乙個陣列 nums,有乙個大小為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 位。你的任...

leetcode 480 滑動視窗中位數

目錄 一 題目內容 二 解題思路 三 中位數是有序序列最中間的那個數。如果序列的長度是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給你乙個陣列 nums,有乙個長度為 k 的視窗從最左端滑動到最右端。視窗中有 k ...

leetcode 480 滑動視窗中位數

基本思路是具備的,利用兩個堆,這樣我們就可以直接得到,中位數相關的兩個元素。查詢的複雜度可以控制在o 1 所以,還需要兩個操作,插入和刪除。由於堆的特點 只能訪問堆頂的元素。所以,如果刪除的元素,不在堆頂的話,就只能延遲刪除。為了查詢的時間複雜度,只能使用堆這種結構來維護資料的有序。插入的話,如果細...