leetcode如何找出滑动窗口中位数
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下leetcode如何找出滑动窗口中位数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位
千家信息网最后更新 2026年11月02日leetcode如何找出滑动窗口中位数
小编给大家分享一下leetcode如何找出滑动窗口中位数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。
例如:
[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]。
提示:
假设k是合法的,即:k 始终小于输入的非空数组的元素个数.
解题思路:
1,注意中位数是窗口内数据排序后的中位数
2,对于窗口内部可以采用插入排序的思想进行排序
3,初始时,采用插入排序,将前k个值,插入窗口
4,找到左指针对应元素在窗口内位置j
5,移动左右指针,将右指针对应元素替换窗口上一个左指针对应元素
6,剩下的就是排序的思路,向左移动或者向右移动,直到有序
func medianSlidingWindow(nums []int, k int) []float64 {var mid []float64win:=make([]int,k)for i:=0;iwin[i]=nums[i]for j:=i;j>0;j--{if win[j]win[j],win[j-1]=win[j-1],win[j]}else{break;}}}mid=append(mid,midd(win))for i:=k;i<=len(nums)-1;i++{win=window(win,nums[i],nums[i-k])mid=append(mid,midd(win))}return mid}func window(nums []int,val int,last int)[]int{j:=0for ;jif nums[j]==last{break;}}nums[j]=valfor i:=j;i>0;i--{if nums[i-1]>nums[i]{nums[i-1],nums[i]=nums[i],nums[i-1]}else{break}}for i:=j;iif nums[i]>nums[i+1]{nums[i],nums[i+1]=nums[i+1],nums[i]}else{break}}return nums}func midd(n []int)float64{fmt.Println(n)if len(n)%2!=0{return float64(n[len(n)/2])}return float64(n[len(n)/2]+n[len(n)/2-1])/2.0}
看完了这篇文章,相信你对"leetcode如何找出滑动窗口中位数"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
中位数
元素
移动
指针
数组
排序
有序
个数
位置
大小
序列
思路
篇文章
合法
两个
任务
偶数
完了
就是
平均数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
保险科技 互联网保险
科技互联网企业
美国互联网保险保险科技
重庆互联网络科技
科技类互联网
中资互联网科技
新浪科技互联网
掌上梦互联网科技
中国互联网有什么科技含量
阿里互联网科技公司
宁夏科技产业互联网案例
赶超互联网科技 微信多开
图游互联网科技
广州燕处互联网科技有限公司
科技互联网行业投资研究
互联网科技品牌
科技互联网专业务虚会材料
安徽九吞吴互联网科技有限公司
互联网科技自媒体灵感
互联网金融公司科技
互联网科技公司怎么样
崇明区互联网教育科技售后服务
浙南科技城互联网大厦建设工程
互联网方面的科技前沿
互联网企业科技类企业如何做账
从那以后互联网科技有限公司
互联网风格科技公司名称
广西泛欧互联网科技有限公司
北京品多多互联网科技有限公司