首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
滑动窗口中位数
[编程题]滑动窗口中位数
热度指数:1047
时间限制: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)
邀请回答
收藏(20)
分享
纠错
提交结果有问题?
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条回答
20收藏
2054浏览
热门推荐
通过挑战的用户
查看代码
酋非天
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的两个数字
数组
数学
双指针
评论
(1511)
来自
“一战通offer”互联...
如图 1 表示使用快表(页表)的虚...
编程基础
评论
(1)
订单表order_table全部记...
查找
数据库
数据分析
SQL
评论
(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]