解题思路
代码实现
public static int [] maxSlidingWindow(int [] nums,int k) {
int[] res = new int[nums.length - k + 1];
LinkedList l = new LinkedList<>();
for (int i = 0; i < nums.length; i++) {
l.add(nums[i]);
// 循环当 集合长度等于 k 吧0 位置数据 添加至res
if (l.size() == k) {
res[i - k+1] = Collections.max(l);
l.removeFirst();
}
}
return res;
}
2. 题目描述
给定一个字符串如:“accekcbbt”,请你找出其中不含有重复字符的 最长子串 的长度。
建立一个集合存放 每个字符;
a
a c 找到集合长度为2的连续不同数据,寻找以3为窗口是否存在连续不同数据,
a c c 3为窗口,添加新数据,存在重复删除 0位置数据
c c e 3为窗口,添加新数据,存在重复删除 0位置数据
c e k 找到集合长度为3的连续不同数据, 寻找以4为窗口是否存在连续不同数据
c e k c 4为窗口,添加新数据,存在重复删除 0位置数据
e k c b 找到集合长度为3的连续不同数据, 寻找以4为窗口是否存在连续不同数据
e k c b b 5为窗口,添加新数据,存在重复删除 0位置数据
k c b b t 5为窗口,添加新数据,存在重复删除 0位置数据
结果 5为窗口的连续不同数据 没有找到,现在数组中存放的数据长度为最大移动窗口
代码实现
public static int maxStrSlidingWindow(String str){
LinkedList l = new LinkedList<