2016年8月2日

栈和队列:生成窗口最大值数组

摘要: 题目:有一个整型数组arr和一个大小为w的窗口从数组的最左边滑到最右边,窗口每次向右滑一个位置。 例如,数组为[4,3,5,4,3,3,6,7],窗口大小为3时: 如果数组长度为n,窗口大小为w,则一共产生n-w+1个窗口的最大值。 请实现一个函数: 输入:整型数组arr,窗口大小为w。 输出:一个 阅读全文

posted @ 2016-08-02 16:47 Traveling_Light_CC 阅读(214) 评论(0) 推荐(0) 编辑

栈和队列:最大值减去最小值或等于num的子数组数量

摘要: 题目:给定数组 arr 和整数 num,共返回有多少个子数组满足如下情况: max(arr[i..j]) - min(arr[i..j]) <= num max(arr[i..j])表示子数组arr[i..j]中的最大值,min(arr[i..j])表示子数组arr[i..j]中的最小值 要求:如果 阅读全文

posted @ 2016-08-02 14:55 Traveling_Light_CC 阅读(257) 评论(0) 推荐(0) 编辑

栈和队列:用一个栈实现另一个栈的排序

摘要: 题目: 一个栈中的元素类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只允许申请一个栈。如何完成排序? 将排序的栈记为 stack,辅助栈记为 help,在stack上执行pop操纵,弹出的元素为 tmp 1. 如果 tmp 大于或等于 help 的栈顶元素或 help 为空,则将 tmp 压 阅读全文

posted @ 2016-08-02 11:56 Traveling_Light_CC 阅读(417) 评论(0) 推荐(0) 编辑

栈和队列:两个栈组成队列

摘要: 要求:编写一个算法,用两个栈实现队列,支持队列的基本操作(add, peek, pop)。 思路:栈的特点是先进后出,而队列的特点是先进先出。 所以为实现队列元素的进出方法,我们可以用两个栈正好把顺序颠倒过来。 具体实现是将一个栈作为压入栈,所以往队列里添加的数据都压入这个栈,记为 in; 另一个栈 阅读全文

posted @ 2016-08-02 11:21 Traveling_Light_CC 阅读(224) 评论(0) 推荐(0) 编辑

导航