最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

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

2023-07-03 10:24 作者:薄荷硬糖醬  | 我要投稿

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

難度困難

2356

給你一個(gè)整數(shù)數(shù)組?nums,有一個(gè)大小為?k?的滑動(dòng)窗口從數(shù)組的最左側(cè)移動(dòng)到數(shù)組的最右側(cè)。你只可以看到在滑動(dòng)窗口內(nèi)的?k?個(gè)數(shù)字。滑動(dòng)窗口每次只向右移動(dòng)一位。

返回?滑動(dòng)窗口中的最大值?。

?

示例 1:

輸入:nums = [1,3,-1,-3,5,3,6,7], k = 3輸出:[3,3,5,5,6,7]解釋:滑動(dòng)窗口的位置 ? ? ? ? ? ? ? ?最大值 --------------- ? ? ? ? ? ? ? ----- [1 ?3 ?-1] -3 ?5 ?3 ?6 ?7 ? ? ? 3 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 ? ? ? 5 1 ?3 ?-1 ?-3 [5 ?3 ?6] 7 ? ? ? 6 1 ?3 ?-1 ?-3 ?5 [3 ?6 ?7] ? ? ?7

示例 2:

輸入:nums = [1], k = 1輸出:[1]

?

提示:

  • 1 <= nums.length <= 105

  • -104?<= nums[i] <= 104

  • 1 <= k <= nums.length

通過(guò)次數(shù)454,121提交次數(shù)914,348


class?Solution?{

private:

????class?MyQueue{

????public:

????????deque<int>?que;

????????void?pop(int?value){

????????????if(!que.empty()?&&?que.front()==value){

????????????????que.pop_front();

????????????}

????????}

????????void?push(int?value){

????????????while(!que.empty()?&&?value?>?que.back()){

????????????????que.pop_back();

????????????}

????????????que.push_back(value);

????????}

????????int?front(){

????????????return?que.front();

????????}

????};

public:

????vector<int>?maxSlidingWindow(vector<int>&?nums,?int?k)?{

????????vector<int>?res;

????????MyQueue?q;

????????for(int?i=0;i<k;i++){

????????????q.push(nums[i]);

????????}

????????res.push_back(q.front());

????????for(int?i=k;i<nums.size();i++){

????????????q.pop(nums[i-k]);

????????????q.push(nums[i]);

????????????res.push_back(q.front());

????????}

????????return?res;

????}

};

?

思路:

使用一個(gè)單調(diào)隊(duì)列來(lái)解決該問(wèn)題,單調(diào)隊(duì)列中插入時(shí)先判斷該數(shù)是否比前面的大,將小于該數(shù)的值全部pop,保證隊(duì)列的單調(diào)性,單調(diào)隊(duì)列pop時(shí)要判斷pop的數(shù)是否還存在在單調(diào)隊(duì)列中,不存在就不用pop,單調(diào)隊(duì)列front是返回最前面的一個(gè)值。

解決問(wèn)題時(shí)先將前k個(gè)數(shù)的最大值加入res中,然后循環(huán)時(shí)先將滑動(dòng)窗口的第一個(gè)數(shù)pop掉(如果它還在單調(diào)序列里的話),然后加入新的值,這里就是窗口的滑動(dòng),然后再將隊(duì)列中的front加入到res中,最后返回res。

239. 滑動(dòng)窗口最大值的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
淳安县| 颍上县| 祁阳县| 兴海县| 西贡区| 利川市| 治多县| 新乐市| 织金县| 皮山县| 涡阳县| 肥乡县| 如东县| 荔浦县| 涿鹿县| 利津县| 分宜县| 明溪县| 东莞市| 延庆县| 鹤庆县| 察哈| 舞钢市| 墨江| 嘉兴市| 杭锦旗| 松潘县| 从江县| 阳朔县| 彰化市| 乐山市| 裕民县| 建瓯市| 安化县| 肇庆市| 抚宁县| SHOW| 瓮安县| 天台县| 长沙市| 泽普县|