单调队列,之后进来比队头的值要大且队头还在窗口内,会导致结果错误。Java翻译代码用例仅通过10个,是翻译错了吗? public ArrayList<integer> maxInWindows (int[] num, int size) { if (size < 1 || num.length < size) { return new ArrayList<>(); } ArrayList<integer> result = new ArrayList<>(); Deque<integer> queue = new LinkedList<>(); for (int i = 0; i < num.length; ++i) { System.out.println(num[i]); System.out.println(queue); if(!queue.isEmpty() && num[queue.peekLast()] < num[i]){ queue.pollLast(); } System.out.println(queue); queue.addLast(i); System.out.println(queue); if(queue.peekFirst() + size <= i){ queue.pollFirst(); } System.out.println(queue); if(i + 1 >= size) { result.add(num[queue.peekFirst()]); } System.out.println(); } return result; }</integer></integer></integer>
点赞

相关推荐

真的很糟糕:欲哭无泪
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务