= =
暴力法执行,把题目想简单了,觉得是k是固定3,不过即使是这样编码时间也很长哎…果然还是菜的
public class String59 {
public static void main(String[] args) {
// int[] nums = {1, 3, -1, -3, 5, 3, 6, 7, 7};
int[] nums = {1,-1};
System.out.println(Arrays.toString(nums));
int[] ints = maxSlidingWindow(nums, 3);
System.out.println(Arrays.toString(ints));
}
public static int[] maxSlidingWindow(int[] nums, int k) {
//最终结果
int[] endArray = new int[0];
if (nums.length > 0) {
if (nums.length > 3) {
//长度是原数组数量-2(数组从0开始
endArray = new int[nums.length - 2];
//窗口大小
int compare = 3;
for (int i = 0; i < nums.length; i++) {
//存放一个窗口的数据
int[] data = new int[3];
//循环取数到倒第二个的时候会报越界错误。
if (i <= nums.length - 3) {
//原来的数据从0开始拷贝到窗口中
System.arraycopy(nums, i, data, 0, compare);
Arrays.sort(data);
endArray[i] = data[2];
}
}
} else {
endArray = nums;
}
}
return endArray;
}
}
本文介绍了一种通过暴力法实现的滑动窗口最大值算法。该算法针对给定的整数数组和窗口大小,返回每个窗口内的最大值。示例代码展示了如何处理不同长度的输入数组,并提供了一个简单的测试用例。

被折叠的 条评论
为什么被折叠?



