package cn.itcast_06;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;
/**
* 返回一个n-w+1 长度的数组, 每个元素代表每个窗口中的最大值。
*/
public class SlideWindow {
/**
* array:源数组
* w:窗口大小
* 时间复杂度O(N*w)
*/
public int[] moveWindow(int[] array, int w) {
int[] result = new int[array.length - w + 1];
for (int i = 0; (i + (w - 1)) < array.length; i++) {
int[] newArr = Arrays.copyOfRange(array, i, i + w);
Arrays.sort(newArr); // 左闭右开
result[i] = newArr[w - 1];
}
return result;
}
/**
* 最优解: 时间复杂度为O(N)
* 利用双端队列
*/
public Integer[] moveWindow1(Integer[] arr,int n, int w)
最后
以上就是幸福曲奇最近收集整理的关于matlab简单滑动窗口算法,滑动窗口法算法(matlab、java)的全部内容,更多相关matlab简单滑动窗口算法内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复