59 - I. 滑动窗口的最大值 发表于 2022-10-26 更新于 2024-06-27 分类于 学习笔记 , 数据结构与算法 , 剑指 Offer , 栈和队列题目描述给定一个数组 nums 和滑动窗口的大小 k, 请找出滑动窗口里的最大值.示例:1234567891011121314输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释: 滑动窗口的位置 最大值------------------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7输出: [3, 3, 5, 5, 6, 7] 阅读全文 »
31. 栈的压入、弹出序列 发表于 2022-10-25 更新于 2024-06-27 分类于 学习笔记 , 数据结构与算法 , 剑指 Offer , 栈和队列题目描述输入两个整数序列, 第一个序列表示栈的压入顺序, 请判断第二个序列是否为栈的弹出顺序. 假设压入栈的所有数字均不相等. 例如, {1,2,3,4,5} 为某栈的压入序列. 序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列. 但是 {4,3,5,1,2} 就不可能是该栈的弹出序列 阅读全文 »
30. 包含 min 函数的栈 发表于 2022-10-24 更新于 2024-06-27 分类于 学习笔记 , 数据结构与算法 , 剑指 Offer , 栈和队列题目描述定义一个栈数据结构, 请在该类型中实现一个能够得到最小元素的 min 函数. 调用 min push pop 的时间复杂度都是 O(1). 阅读全文 »
09. 用两个栈实现队列 发表于 2022-10-21 更新于 2024-06-27 分类于 学习笔记 , 数据结构与算法 , 剑指 Offer , 栈和队列题目描述用两个栈实现一个队列. 队列的声明如下, 实现它的 appendTail 和 deleteHead, 分别完成在队列尾部插入整数和在队列头部删除整数的功能, 如果队列中没有了元素则直接返回 -1. 阅读全文 »
06. 从尾到头打印链表 发表于 2022-10-20 更新于 2024-06-27 分类于 学习笔记 , 数据结构与算法 , 剑指 Offer , 栈和队列题目描述给你一个链表的头结点, 要求你从尾到头反过来返回每个节点的值 ~示例:12输入: head = [1, 2, 3]输出: [3, 2, 1] 阅读全文 »