
栈
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 173. Binary Search Tree Iterator
问题描述:实现平衡二叉树的迭代器即next()和hasNext()方法的实现。题目链接:173. Binary Search Tree Iterator参考题目94中序遍历的方式,先解决左子树,然后再根,再又子树。这题有点像是迭代器模式,在python里面的话实现__next__魔术方法和一个__iter__魔术方法就可以用in来遍历迭代,在Java里面也是如此,成为可迭代对象,我...原创 2019-01-13 20:51:38 · 157 阅读 · 0 评论 -
Leetcode 155. Min Stack
问题描述:实现一个栈的功能,并能返回最小值。题目链接:155. Min Stack偷懒的做法了,不过要想记录最小值,在pop之后就不得不重新整理最小值,每次push的时候还要比较,不值当。在讨论区看到了一种方法就是利用加减来实现记录最小值,还有的开辟另外一个空间存储当前数下的最小值。推荐答案迭代式记忆最小值:迭代式记忆最小值,加减操作。代码实现如下:class MinStack:...原创 2019-01-08 23:08:39 · 109 阅读 · 0 评论 -
Leetcode 225. Implement Stack using Queues
题目描述: 用队列实现栈。(一个或者两个都可以)题目链接:Leetcode 225. Implement Stack using Queues思路:用一个队列实现栈,每次入队列的时候,就把队列顺序从新排一遍,原地入队除了最后一个元素,出栈就是队列的第一个元素。代码如下class MyStack: def __init__(self): """ ...原创 2019-01-24 22:16:17 · 108 阅读 · 0 评论 -
Leetcode 397. Integer Replacement
题目描述:判断一个数字到1需要多少个步骤?题目链接:Leetcode 397. Integer Replacement其变换描述为:如果n是偶数,其n/2,如果是奇数,可以加1或者减1,找出最小变化步数。思路:深度优先搜索加上剪枝,判断奇数偶数用n&1 看位数,除以2用移位的方法。代码如下:class Solution(object): def integerRep...原创 2019-01-21 16:50:28 · 213 阅读 · 0 评论 -
Leetcode 216. Combination Sum III
题目描述:找到所有满足要求的组合,且不能重复,答案不重复,每个组合数字不重复。题目链接:Leetcode 216. Combination Sum III思路:深度优先搜索,列出所有组合。(没有超时)利用排序来去重。代码如下:class Solution: def combinationSum3(self, k, n): """ :type k...原创 2019-01-23 16:29:21 · 157 阅读 · 0 评论