单调队列,之后进来比队头的值要大且队头还在窗口内,会导致结果错误。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>
点赞

相关推荐

不愿透露姓名的神秘牛友
11-19 18:52
七牛云一生之敌I两个...:自我评价删了,其他浓缩为一页
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
在笔试的大西瓜很矫健:这跟数分八竿子打不着,先去了解实习要会什么再说找实习吧
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务