日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

239 Sliding Window Maximum 滑动窗口最大值

發布時間:2025/5/22 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 239 Sliding Window Maximum 滑动窗口最大值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口 k 內的數字。滑動窗口每次只向右移動一位。
例如,
給定 nums = [1,3,-1,-3,5,3,6,7],和 k = 3 。
窗口位置??????????????????????? 最大值
---------------????????? ? ? ? ??? -----
[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
由此可見,返回最大的滑動窗口為:[3,3,5,5,6,7]。
注意:
你可以假設 k 一直都是有效的,例如:1 ≤ k ≤ 輸入數組的大小,輸入數組不為空。
進階:
你能在線性時間復雜度內解決此題嗎?
詳見:https://leetcode.com/problems/sliding-window-maximum/description/

Java實現:

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int n=nums.length;if(n==0||nums==null){return new int[0];}int[] res=new int[n-k+1];for(int i=0;i<n-k+1;++i){int maxVal=nums[i];for(int j=i;j<i+k;++j){if(nums[j]>maxVal){maxVal=nums[j];}}res[i]=maxVal;}return res;} }

?C++實現:

class Solution { public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {int n=nums.size();vector<int> res;if(n==0||nums.empty()){return res;}for(int i=0;i<n-k+1;++i){int maxVal=nums[i];for(int j=i;j<i+k;++j){if(nums[j]>maxVal){maxVal=nums[j];}}res.push_back(maxVal);}return res;} };

?

轉載于:https://www.cnblogs.com/xidian2014/p/8760034.html

總結

以上是生活随笔為你收集整理的239 Sliding Window Maximum 滑动窗口最大值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。