首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
滑动窗口中位数
[编程题]滑动窗口中位数
热度指数:1220
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个长度为 n 的正整数数组,和一个窗口长度 k ,有一个长度为 k 的窗口从最左端滑到最右端。请你算出所有窗口的中位数。
中位数是有序数组最中间的数,如果序列长度是偶数,中位数就是两个最中间的数的平均数。
数据范围:数组长度满足
,数组中的值满足
示例1
输入
[4,5,9,7,8,5],3
输出
[5,7,8,7]
示例2
输入
[4,5,9,7,8,5],4
输出
[6,7.5,7.5]
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(21)
分享
纠错
提交结果有问题?
2个回答
3篇题解
开通博客
姐姐的遮阳伞
发表于 2022-04-14 19:20:36
思路: 自己维护一个窗口,使窗口里面的数字是有序的。如果能够做到这一点,那么我们每次取中位数就相当方便了。大致思路有了之后,我们应该解决下面问题 窗口应该使用什么数据结构? 在这里,我们使用 ArrayList,选取的理由主要是查找速度相对于 LinkedList 更快。我们需要频繁地插入数据,每
展开全文
agctXY
发表于 2024-11-15 23:12:24
思路一开始就有了,本以为会很快通过,结果被边界条件卡了很久.显然要用到滑动窗口,窗口每次滑动时会加入和删除一个数字.容易想到使用std::multiset来维护递增序列,并且std::multiset的插入和删除都是O(logK).那么如何找到这个序列的中位数呢? - 初始化时,需要从mult
展开全文
17c89
发表于 2024-11-13 13:59:07
import java.util.*; /** * NC395 滑动窗口中位数 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * <p
展开全文
问题信息
哈希
堆
双指针
难度:
2条回答
21收藏
2788浏览
热门推荐
通过挑战的用户
查看代码
酋非天
2022-09-14 21:10:14
xzd-698
2022-09-12 16:31:42
tq要上榜
2022-09-06 17:58:27
半个西瓜半个夏
2022-08-23 21:20:07
AnnaSop...
2022-08-20 23:14:03
相关试题
神奇的数字
排序
双指针
评论
(46)
最小面积子矩阵
动态规划
双指针
前缀和
评论
(46)
和为S的两个数字
数组
数学
双指针
评论
(1513)
来自
“一战通offer”互联...
关于 JavaScript 中的类...
Javascript
评论
(1)
在Redis的持久化机制中,关于R...
Redis
评论
(1)
滑动窗口中位数
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型ArrayList * @param k int整型 * @return double浮点型ArrayList */ public ArrayList
slidewindow (ArrayList
nums, int k) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @param k int整型 * @return double浮点型vector */ vector
slidewindow(vector
& nums, int k) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @param k int整型 # @return double浮点型一维数组 # class Solution: def slidewindow(self , nums , k ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ public List
slidewindow (List
nums, int k) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ function slidewindow( nums , k ) { // write code here } module.exports = { slidewindow : slidewindow };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @param k int整型 # @return double浮点型一维数组 # class Solution: def slidewindow(self , nums: List[int], k: int) -> List[float]: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ func slidewindow( nums []int , k int ) []float64 { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param numsLen int nums数组长度 * @param k int整型 * @return double浮点型一维数组 * @return int* returnSize 返回数组行数 */ double* slidewindow(int* nums, int numsLen, int k, int* returnSize ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @param k int整型 # @return double浮点型一维数组 # class Solution def slidewindow(nums, k) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ def slidewindow(nums: Array[Int],k: Int): Array[Double] = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ fun slidewindow(nums: IntArray,k: Int): DoubleArray { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ public double[] slidewindow (int[] nums, int k) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ export function slidewindow(nums: number[], k: number): number[] { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ func slidewindow ( _ nums: [Int], _ k: Int) -> [Double] { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param k int整型 * @return double浮点型一维数组 */ pub fn slidewindow(&self, nums: Vec
, k: i32) -> Vec
{ // write code here } }
[4,5,9,7,8,5],3
[5,7,8,7]
[4,5,9,7,8,5],4
[6,7.5,7.5]