首页 > 文章列表 > Java怎么实现滑动窗口

Java怎么实现滑动窗口

java
309 2023-04-30

解题思路:

使用队列实现滑动窗口

    public int[] rotate(int []nums,int k){
        LinkedList<Integer> queue = new LinkedList<Integer>();
        for (int num:nums){
            queue.offer(num);
        }
        for (int i=0;i<k;i++){
            int temp =  queue.pollLast();
            queue.offerFirst(temp);
        }
        return queue.stream().mapToInt(value -> {
            return value;
        }).toArray();
    }

优化算法: 利用空间换取时间:复制一份相同维度的数组,对于原来的数组进行位置替换

class Solution {
       public void rotate(int []nums,int k){
          int []nums1= Arrays.copyOfRange(nums,0,nums.length);
          
          for (int i =0;i<nums1.length;i++){
               int end = (i+k)%nums.length;
               nums[end] = nums1[i];
          }
    }
}