class Solution {
public int[]maxSlidingWindow(int[] nums, int k) {
int len = nums.length;
? ? ? ? if (len ==0)return new int[]{};
? ? ? ? if (len ==1)return new int[]{nums[0]};
? ? ? ? int localMax = Integer.MIN_VALUE;
? ? ? ? int[]result =new int[len - k +1];
? ? ? ? for (int i =0; i < k; i++) {
localMax = Math.max(nums[i], localMax);
? ? ? ? }
result[0] =localMax;
? ? ? ? for (int i =1; i
if (nums[i + k -1] >localMax) {
localMax = nums[i + k -1];
? ? ? ? ? ? }else if (nums[i -1] ==localMax) {
localMax = nums[i];
? ? ? ? ? ? ? ? for (int x =i; x
localMax = Math.max(nums[x], localMax);
? ? ? ? ? ? ? ? }
}
result[i] =localMax;
? ? ? ? }
return result;
? ? }
}
不開(kāi)辟新的空間,通過(guò)索引的變動(dòng)在原始數(shù)組上拉取數(shù)據(jù)進(jìn)行比較