0. 题目
一、大根堆(负数)+小根堆
class Solution:
import heapq
def medianSlidingWindow(self,nums, k):
n = len(nums)
if not nums: return []
if k>=n:
nums.sort()
if n%2==1: # 0 0 0 l=3 0 0 l=2
return [nums[n//2]]
else:
return [(nums[n//2-1]+nums[n//2])/2]
q = [(nums[_],_) for _ in range(k)] #小根堆
q = sorted(q,key=lambda x:x[0])
# 大根堆
q1 = q[:k//2] #如果是奇数,q1的长度<q2的长度
q1 = [(-x, i) for x, i in q1]
heapq.heap