Python 里应该是 list,Python 的 list 貌似既能当栈也能当双端队列吧?下面是 Java 的: //双端队列: int[] arr = {2, 3, 1, 5, 6, 2, 8}; Deque<Integer> q = new LinkedList<>(); for (int i = 0; i < arr.length; i++) { while (!q.isEmpty() && q.peekLast() > arr[i]) { q.pollLast(); } if (q.size() < 3) { q.add(arr[i]); } } for (int i = 0, len = q.size(); i < len; i++) { System.out.println(q.poll()); } //栈 int[] arr = {2, 3, 1, 5, 6}; Stack<Integer> stack = new Stack<>(); for (int i = 0; i < arr.length; i++) { while (!stack.isEmpty() && stack.peek() > arr[i]) { stack.pop(); } if (stack.size() < 3) { stack.push(arr[i]); } } //输出方便用 Collections 翻转了一下栈里的元素,用队列就不用翻转了 Collections.reverse(stack); for (int i = 0, len = stack.size(); i < len; i++) { System.out.println(stack.pop()); }
点赞 1

相关推荐

浩浩没烦恼:一二面加起来才一个小时? 我一面就一个小时多了
点赞 评论 收藏
分享
10-10 16:30
济宁学院 Java
不想做程序员:面试官:蓝桥杯三等奖?你多去两次厕所都能拿二等吧
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务