如題:他這是為難我胖虎!
中位數是有序序列最中間的那個數。如果序列的長度是偶數,則沒有最中間的數;此時中位數是最中間的兩個數的平均數。例如:
給你乙個陣列 nums,有乙個長度為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 位。你的任務是找出每次視窗移動後得到的新視窗中元素的中位數,並輸出由它們組成的陣列。並查集我唯唯諾諾,滑動窗**唯唯諾諾。
/*
* note: the returned array must be malloced, assume caller calls free().
*/double g_queuenum[
10000];
int g_total;
int g_index;
int g_k;
double
queue()
// 只插入乙個值,不知道是在前面還是後面,所以需要前後冒一遍泡
}for
(int i = g_k-
1; i>
0; i--
)//氣泡排序}if
(g_k %2==
0)else
}int
pop(
double number)
//二分查詢刪除元素
else
if(g_queuenum[mid]
< number)
else
}return0;
}int
push
(double number)
double
*medianslidingwindow
(int
* nums,
int numssize,
int k,
int* returnsize)
for(
int i =
0; i1; i++)}
} g_total =0;
for(
int i = k; i ) totalnum[g_total++]=
queue()
;//最後乙個值
*returnsize = g_total;
return totalnum;
}
滑動視窗中位數
中位數是有序序列最中間的那個數。如果序列的長度是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 給你乙個陣列 nums,有乙個長度為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 位。你的任務是找出每次視窗移動後得到的新視窗中元素的中位數,並輸出由它們組...
力扣 480 滑動視窗中位數 劃分樹 Treap
思路一 需要一種可以快速求出區間第k kk大的資料結構,那麼主席樹 tre aptreap trea p等都滿足題意,這裡我用了劃分樹,他也可以求出區間第k kk大,不過不支援動態修改,詳見我這篇部落格。class dividetree void build int depth,int l,int ...
480 滑動視窗中位數
題目描述 中位數是有序序列最中間的那個數。如果序列的大小是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給你乙個陣列 nums,有乙個大小為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右移動 1 ...