标签:value img cli -- display none lap return spl
Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Return the max sliding window.
Follow up:
Could you solve it in linear time?
Example:
Input: nums = [1,3,-1,-3,5,3,6,7]
, and k = 3
Output: [3,3,5,5,6,7]
Explanation:
Window position Max
--------------- -----
[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
思路:起码两个指针的暴力做法可以想一想。
public int[] maxSlidingWindow(int[] nums, int k) { if(nums == null || k <= 0) return new int [0]; int [] arr = new int[nums.length - k + 1]; for(int i = 0; i < nums.length - k + 1; i++){ int max = Integer.MIN_VALUE; for(int j = i; j < i + k; j++) max = Math.max(max, nums[j]); arr[i] = max; } return arr; }
239. Sliding Window Maximum 239.滑动窗口最大值
标签:value img cli -- display none lap return spl
原文地址:https://www.cnblogs.com/immiao0319/p/13669481.html