LeetCode 480. Sliding Window Median
来源:互联网 发布:淘宝主图怎么做吸引人 编辑:程序博客网 时间:2024/05/18 02:20
Problem Statement
(Source) Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle value.
Examples:
[2,3,4] , the median is 3[2,3], the median is (2 + 3) / 2 = 2.5
Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Your job is to output the median array for each window in the original array.
For example,
Given nums = [1,3,-1,-3,5,3,6,7]
, and k = 3.
Window position Median--------------- -----[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
Therefore, return the median sliding window as [1,-1,-1,3,5,6]
.
Note:
You may assume k is always valid, ie: 1 ≤ k ≤ input array’s size for non-empty array.
Solution
class Solution(object): def medianSlidingWindow(self, nums, k): """ :type nums: List[int] :type k: int :rtype: List[float] """ n = len(nums) res = [0] * (n - k + 1) arr = None for i in xrange(n-k+1): if arr is None: arr = nums[i : i+k] else: arr.remove(nums[i-1]) arr.append(nums[i+k-1]) arr.sort() res[i] = arr[k>>1] / 1.0 if k & 1 == 0: res[i] = (arr[k>>1] + arr[-1 + k>>1]) / 2.0 return res
Complexity Analysis:
- Time Complexity:
- LeetCode 480. Sliding Window Median
- [LeetCode]480. Sliding Window Median
- [leetcode]480. Sliding Window Median
- leetcode 480. Sliding Window Median
- [LeetCode] Sliding Window Median
- [Leetcode] 480. Sliding Window Median 解题报告
- 480. Sliding Window Median
- 480. Sliding Window Median
- 480. Sliding Window Median
- leetcode-480-Sliding Window Median
- leetcode 480. Sliding Window Median 滑动窗口中位数
- [LeetCode] Sliding Window Median 滑动窗口中位数
- Leetcode 480. Sliding Window Median 滑动窗口中的中位数 解题报告
- Lintcode 360 Sliding Window Median
- LintCode:H-Sliding Window Median
- leetcode Sliding Window Maximum
- [LeetCode]Sliding Window Maximum
- leetcode - Sliding Window Maximum
- oracle
- LINUX下Live555不能获取ip地址解决方法
- tcp/ip详解(3-7)
- Java web项目 在线网络考试考生登录界面部分代码
- C 信号量与互斥锁的区别
- LeetCode 480. Sliding Window Median
- 扩充你的Mac
- 游戏排行榜的实现
- [Azure]使用Azure Automation实现自动开关虚拟机的操作
- redis3.0.7源码阅读(十一)redis数据库rdb
- 无法获得锁/var/lib/dpkg/lock - open (11: 资源暂时不可用)的解决方案
- C++txt文件传输 下
- 专题6-添加调试信息(led)
- linux下几个文件格式的区别