日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python实现滑动窗口平均_数据流滑动窗口平均值 · sliding window average from data stream...

發(fā)布時(shí)間:2025/3/12 python 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现滑动窗口平均_数据流滑动窗口平均值 · sliding window average from data stream... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[抄題]:

給出一串整數(shù)流和窗口大小,計(jì)算滑動(dòng)窗口中所有整數(shù)的平均值。

MovingAverage m = new MovingAverage(3);

m.next(1) = 1 // 返回 1.00000

m.next(10) = (1 + 10) / 2 // 返回 5.50000

m.next(3) = (1 + 10 + 3) / 3 // 返回 4.66667

m.next(5) = (10 + 3 + 5) / 3 // 返回 6.00000

[暴力解法]:

來(lái)一個(gè)數(shù)就存數(shù)組,for 循環(huán)最近size個(gè)數(shù)求和取平均返回。

時(shí)間分析:size

空間分析:n

[思維問(wèn)題]:

不知道為什么要定義全局變量:因?yàn)閮蓚€(gè)函數(shù)中都要用。

先提前聲明,在函數(shù)中分別具體實(shí)現(xiàn)。

[一句話思路]:

先進(jìn)先出,用queue實(shí)現(xiàn)就行。

[輸入量]:空:?正常情況:特大:特小:程序里處理到的特殊情況:異常情況(不合法不合理的輸入):

[畫(huà)圖]:

[一刷]:

判斷queue尺寸,已經(jīng)滿了,就先拿出來(lái) 再放進(jìn)去。

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分鐘肉眼debug的結(jié)果]:

[總結(jié)]:

方法中只有實(shí)現(xiàn),沒(méi)有聲明。que = new LinkedList();即可

[復(fù)雜度]:Time complexity: O(n) Space complexity: O(n)

n個(gè)點(diǎn),每個(gè)點(diǎn)執(zhí)行一次。不知道queue都是這樣嗎?下次注意

[英文數(shù)據(jù)結(jié)構(gòu)或算法,為什么不用別的數(shù)據(jù)結(jié)構(gòu)或算法]:

[其他解法]:

前綴和,沒(méi)有通用性,算了

時(shí)間分析:方便快速求a數(shù)組中某一段的和?前綴和做差法?a[k] + a[k + 1] +... + a[j] = s[j] - s[k -1]?時(shí)間復(fù)雜度降成o(1)

[Follow Up]:

[LC給出的題目變變變]:

239.?Sliding Window Maximum median 一堆數(shù)求最值,用堆

773.?Sliding Puzzle 最短路,用bfs

[代碼風(fēng)格] :

/ ?除號(hào)兩邊要打空格

public classMovingAverage {/** @param size: An integer*/

private double sum = 0;// private intsize;private intval;private Queueque;public MovingAverage(intsize) {this.size =size;

que= new LinkedList();

}/** @param val: An integer

* @return:*/

public double next(intval) {this.val =val;this.sum =sum;

sum+=val;if (que.size() ==size) {

sum= sum -que.poll();

}

que.offer(val);return sum / que.size();//}

}

View Code

總結(jié)

以上是生活随笔為你收集整理的python实现滑动窗口平均_数据流滑动窗口平均值 · sliding window average from data stream...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。