LeetCode#239. Sliding Window Maximum
来源:互联网 发布:纳米袜子 知乎 编辑:程序博客网 时间:2024/06/06 00:46
- 题目:给定一个int数组nums和一个滑动窗口值k,返回每个滑动子窗口的最大元素组成的数组(滑动子窗口是nums的连续子串,包括k个元素)
- 难度:Hard(如果对时间复杂度没有要求,难度并不大)
- 思路:暴力解法-两层for循环分别求出每一个子窗口的最大元素
- 代码:
class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if(nums == null || nums.length == 0 || k <= 0|| nums.length < k){ return nums; } int len = nums.length-k+1; int[] result = new int[len]; for(int i = 0; i< nums.length-k+1; i++){ int max = nums[i]; for(int j = 0; j < k; j++){ if(nums[i+j] > max){ max = nums[i+j]; } } result[i] = max; } return result; }}
方法二:利用双向队列维护子窗口中最大元素
class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || k <= 0) { return new int[0]; } int len = nums.length; int[] result = new int[len-k+1]; int index = 0; LinkedList<Integer> queue = new LinkedList<Integer>(); for(int i = 0; i < len; i++){ //如果第i个元素大于队列最后一个下标在数组中的值,就把队列最后一个pop掉 while(!queue.isEmpty() && nums[queue.peekLast()] < nums[i]){ queue.pollLast(); } //已经过期的队头元素,pop掉 while(!queue.isEmpty() && queue.peek() < i-k+1){ queue.poll(); } queue.offer(i); if(i >= k-1){ result[index++] = nums[queue.peek()]; } } return result; }}
阅读全文
0 0
- [leetcode] 239.Sliding Window Maximum
- [LeetCode]239.Sliding Window Maximum
- leetcode 239. Sliding Window Maximum
- LeetCode 239. Sliding Window Maximum
- [leetcode] 239. Sliding Window Maximum
- leetcode.239. Sliding Window Maximum
- LeetCode-239.Sliding Window Maximum
- leetcode 239. Sliding Window Maximum
- Leetcode-239. Sliding Window Maximum
- Leetcode 239. Sliding Window Maximum
- leetcode 239.Sliding Window Maximum
- [LeetCode]239. Sliding Window Maximum
- Leetcode 239. Sliding Window Maximum
- [LeetCode]239. Sliding Window Maximum
- Leetcode 239. Sliding Window Maximum
- Leetcode 239. Sliding Window Maximum
- [leetcode]239. Sliding Window Maximum
- LeetCode 239. Sliding Window Maximum
- 反转单向链表
- vb.net 教程 20-2 base64图片转换 1
- hdu 1238 substring
- gitlab 权限设置
- 第一章 走近Java
- LeetCode#239. Sliding Window Maximum
- Burp Intruder-暴力猜解
- 1的个数 汉明距离
- 长沙理工大学第十二届ACM大赛 I.主持人的烦恼【贪心】
- GreenDao数据库的配置流程
- crf的意义
- CodeForces 467 A.George and Accommodation(水~)
- 1153:送分题素数
- docker核心-------镜像