多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開源 > php教程 > 滑動(dòng)窗口的最大值

滑動(dòng)窗口的最大值

來(lái)源:程序員人生   發(fā)布時(shí)間:2016-07-26 13:14:53 閱讀次數(shù):2559次

題目

給定1個(gè)數(shù)組和滑動(dòng)窗口的大小,找出所有滑動(dòng)窗口里數(shù)值的最大值。
例如,如果輸入數(shù)組{2,3,4,2,6,2,5,1}及滑動(dòng)窗口的大小3,那末1共存在6個(gè)滑動(dòng)窗口,他們的最大值分別為{4,4,6,6,6,5}; 針對(duì)數(shù)組{2,3,4,2,6,2,5,1}的滑動(dòng)窗口有以下6個(gè):
{[2,3,4],2,6,2,5,1},
{2,[3,4,2],6,2,5,1},
{2,3,[4,2,6],2,5,1},
{2,3,4,[2,6,2],5,1},
{2,3,4,2,[6,2,5],1},
{2,3,4,2,6,[2,5,1]}。

解題

方法1:暴力
時(shí)間復(fù)雜度:O(nk)

import java.util.*; public class Solution { public ArrayList<Integer> maxInWindows(int [] num, int size) { ArrayList<Integer> result = new ArrayList<Integer>(); int len = num.length; if(size<=0 || size> len) return result; for(int i=0;i<len;i++){ int max = Integer.MIN_VALUE; for(int k=0;k+i < len && k<size;k++){ max = max>num[i+k]?max:num[i+k]; } result.add(max); if(i+size==len) break; } return result; } }

方法2:利用隊(duì)列
隊(duì)列寄存滑動(dòng)窗口中較大元素的下標(biāo)

import java.util.ArrayList; import java.util.*; public class Solution { public ArrayList<Integer> maxInWindows(int[] num, int size) { ArrayList<Integer> result = new ArrayList<>(); if (num == null) { return result; } if (num.length < size || size < 1) { return result; } LinkedList<Integer> indexDeque = new LinkedList<>(); for (int i = 0; i < size; i++) { while (!indexDeque.isEmpty() && num[i] >= num[indexDeque.getLast()]) { indexDeque.removeLast(); } indexDeque.addLast(i); } for (int i = size; i < num.length ; i++) { result.add(num[indexDeque.getFirst()]); while (!indexDeque.isEmpty() && num[i] >= num[indexDeque.getLast()]) { indexDeque.removeLast(); } if (!indexDeque.isEmpty() && indexDeque.getFirst() <= (i - size)) { indexDeque.removeFirst(); } indexDeque.addLast(i); } result.add(num[indexDeque.getFirst()]); return result; } }

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 五月婷婷伊人 | 亚洲欧美日韩中文综合在线不卡 | 久久久久久久久久久96av | 日本一区二区网站 | 在线亚州| 偷拍videosex | xxxx性欧美| 亚洲欧美精品天堂久久综合一区 | 久久精品国产在热久久2019 | 开操网 | 综合欧美日韩 | 最近中文字幕mv免费高清视频免费 | 伊人久久大香线蕉精品哪里 | 久久亚洲精中文字幕冲田杏梨 | 久久国产精品久久久久久 | 精品一区二区三 | 秋霞福利 | 亚州 色 图 综合 | 亚洲欧美天堂 | 亚洲精品自在线拍 | 欧美黑人乱大交ⅹxxxxx | 久久亚洲美女久久久久 | 日韩中文字幕视频在线观看 | 国产精品久久久久久福利漫画 | 亚洲精品自在线拍 | 欧美亚洲综合另类成人 | 国内高清久久久久久久久 | 日韩爱爱小视频 | 欧美高清性刺激毛片 | 久久久久久久岛国免费播放 | 亚洲精品456在线播放 | 亚洲天天做夜夜做天天欢 | 亚洲精品国产福利一区二区三区 | 操一炮在线| 伊人久久五月天综合网 | 大香交伊人 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片欧美 | 日本天堂视频 | 免费观看的黄色网址 | www.久久精品| 国产亚洲人成a在线v网站 |