
栈和队列题目
dp小王子
讲真的,写博客好累。。。
展开
-
如何仅用递归函数和栈操作逆序一个栈
【题目】一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1,将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。思路:具体实现如下reverse方法getAndRemoveLastElement方法在图中简单表示为get方法,表示移除并返回当前栈底元素 public static int getA...原创 2019-01-18 17:41:00 · 204 阅读 · 0 评论 -
生成窗口最大值数组
生成窗口最大值数组【题目】有一个整形数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向最右边滑一个位置。例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时,[4 3 5] 4 3 3 6 7 窗口最大值为54 [3 5 4] 3 3 6 7 窗口最大值为54 3 [5 4 3] 3 6 7 窗口...原创 2019-01-15 22:11:58 · 267 阅读 · 0 评论 -
最大值减去最小值小于或等于num的子数组数量
最大值减去最小值小于或等于num的子数组数量【题目】给定数组arr和整数num,共返回有多少个子数组满足如下情况:max(arr[i…j]) - min(arr[i…j]) <= nummax(arr[i…j])表示子数组arr[i…j]中的最大值,min(arr[i…j])表示子数组arr[i…j]中的最小值。【要求】 如果数组长度为N, 实现时间复杂度为O(N)思路:1.生成...原创 2019-01-15 23:10:44 · 299 阅读 · 0 评论 -
用一个栈实现另一个栈的排序
【题目】一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?思路:将要排序的栈记为stack,申请的辅助栈记为help。在stack上执行pop操作,弹出的元素记为cur。如果cur小于等于help的栈顶元素,将cur入help栈否则,将help的元素逐一弹出入stack栈,直到cur小于或...原创 2019-01-16 17:29:49 · 350 阅读 · 0 评论 -
构造数组的MaxTree
【题目】定义二叉树节点如下:public static class Node { public int value; public Node left; public Node right; public Node(int value) { this.value = value; } }一个数组的MaxTree定义如下。数组必须没有重复元素。MaxTree...原创 2019-01-16 17:30:17 · 309 阅读 · 0 评论 -
求最大子矩阵的大小
【题目】给定一个整型矩阵map,其中的值只有0和1两种,求其中全是1的所有矩阵区域中,最大的矩形区域为1的数量。思路:步骤1:矩阵的行数为N,以每一行做切割,统计以当前行作为底的情况下,每个位置往上的1的数量。使用高度数组height来表示。例如:map=1 0 1 1 1 1 1 1 1 1 1 0...原创 2019-01-16 17:31:56 · 481 阅读 · 0 评论 -
设计一个有getMin功能的栈
设计一个有getMin功能的栈【题目】实现一个特殊的栈,在实现栈的基本功能基础上,再实现返回栈中最小元素的操作。【要求】pop、push、geMin操作的时间复杂度都是O(1)。设计的栈类型可以使用现成的栈结构。public class MyStack { private Stack<Integer> stackData; private Stack<Int...原创 2019-01-16 21:58:16 · 244 阅读 · 0 评论 -
有两个栈组成的队列
编写一个类,用两个栈实现队列,支持队列的基本操作(add, poll, peek)。public class TwoStackQueue { private Stack<Integer> stackPush; private Stack<Integer> stackPop; public TwoStackQueue() { stackPush = new St...原创 2019-01-16 22:00:28 · 93 阅读 · 0 评论 -
如何仅用递归函数和栈操作逆序一个栈
一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1,将这个栈转置后,从栈顶到栈底为1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构。思路:具体实现如下reverse方法getAndRemoveLastElement方法在图中...原创 2019-01-16 22:28:12 · 134 阅读 · 0 评论