刷題 力扣 480

2022-06-11 23:12:17 字數 948 閱讀 9981

題目鏈結

題目描述

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

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

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

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

示例:

給出 nums = [1,3,-1,-3,5,3,6,7],以及 k = 3。

視窗位置 中位數

--------------- -----

[1 3 -1] -3 5 3 6 7 1

1 [3 -1 -3] 5 3 6 7 -1

1 3 [-1 -3 5] 3 6 7 -1

1 3 -1 [-3 5 3] 6 7 3

1 3 -1 -3 [5 3 6] 7 5

1 3 -1 -3 5 [3 6 7] 6

因此,返回該滑動視窗的中位數陣列 [1,-1,-1,3,5,6]。

題目分析

根據題目描述需要選出當前視窗的中位數

需要維護乙個有序的列表cpy,當視窗移動的時候從cpy中刪除移動出視窗的元素,向cpy中插入移入視窗的元素

每次移動視窗後對cpy進行排序,選出cpy中的中位數,即為所求

**中cpy的資料型別為multiset,cpy的資料型別的選擇參考了[負雪明燭]的題解

**

class solution 

return res;

}}

力扣刷題系列

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。從中學知識知道,如果需要求一組數字的中位數,那麼先要從小到大排列這些數字。接著,如果總共有奇數個...

刷題 力扣 119

題目鏈結 題目描述 給定乙個非負索引 k,其中 k 33,返回楊輝三角的第 k 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 3 輸出 1,3,3,1 高階 題目分析 根據題目描述楊輝三角形每一行從左到右依次是 組合 combiner是用來計算組合的結果 依次遍歷每一行從左到右 c...

刷題 力扣 665

題目鏈結 題目描述 給你乙個長度為 n 的整數陣列,請你判斷在 最多 改變 1 個元素的情況下,該陣列能否變成乙個非遞減數列。我們是這樣定義乙個非遞減數列的 對於陣列中所有的 i 0 i n 2 總滿足 nums i nums i 1 示例 1 輸入 nums 4,2,3 輸出 true 解釋 你可...