
工作
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 142. Linked List Cycle II
Leetcode 142. Linked List Cycle II地址:Leetcode 142. linked list Cycle II问题描述:检测链表是否存在环,是的话返回环入口,否则返回None.这道题有两个思路,一个是经典的快慢指针的思路,另外一个是利用hashMap来记住已经访问过的Node。思路一:检测到环的时候,令慢指针指向head,然后fast 和 slow指针皆...原创 2019-01-06 15:30:25 · 163 阅读 · 0 评论 -
Leetcode 143. Reorder List
Leetcode 143. Reorder List问题描述:给定一个链表,要求把最后一位插入到第二位、倒数第二位插入到第三位…链表问题很直接的思路就是断链、连链、暂存节点、暂存下个节点、快慢指针等操作。继承前面142的思路,这里用快慢指针找到链表的中位数(index)位置,中位数后面的数字都是需要前插的,然后先进行链表的翻转,再进行合并得到最后的结果。代码如下:class So...原创 2019-01-06 18:55:56 · 129 阅读 · 0 评论 -
Leetcode 145. Binary Tree Postorder Traversal
Leetcode 145. Binary Tree Postorder Traversal问题描述二叉树的遍历后根序遍历,也就是左右根的顺序访问。分别提供以下方法以及python代码:递归的方式class Solution: def postorderTraversal(self, root): """ :type root: TreeNode...原创 2019-01-06 19:52:19 · 269 阅读 · 0 评论 -
Leetcode 94. Binary Tree Inorder Traversal
Leetcode 94. Binary Tree Inorder Traversal问题描述:给出二叉树,写出其中序遍历结果,也就是左根右的顺序访问。题目链接:Leetcode 94. Binary Tree Inorder TraversaL提供一下python版本的方法:递归的版本class Solution: def postorderTraversal(self, r...原创 2019-01-06 19:59:46 · 144 阅读 · 0 评论 -
Leetcode 146. LRU Cache
问题描述:实现LRU缓存算法。题目来源:146. LRU Cache这个是一种缓存策略以及页面置换淘汰策略。简单的来说就是最近使用的不淘汰,最近没有使用的就要被淘汰。题目要求put\set都要实现常数时间的操作,则很容易想到利用哈希去做,但是如何来定义最远没有使用的呢?1、加时间戳(timestamp),但是这样维护时间戳排序的时候很麻烦,时间复杂度很高2、利用链表来维护当前的节点状...原创 2019-01-07 13:03:21 · 164 阅读 · 0 评论 -
LeetCode 148. Sort List
题目描述:完成链表的排序,在nlogn时间复杂度内,且只用常数空间。题目链接:148. Sort List这题思路要求要用nlogn的时间复杂度的算法去完成这个操作,其实选择也就那么多:1、快排2、堆排3、归并排序在数组上完成这三个操作其实都不太难,但在链表上有一定难度。快排要找到pivot然后比较交换,双向链表比较合适,堆排要放到数组建堆,不满足。归并排序,在数组的情况下需要建...原创 2019-01-07 15:49:05 · 139 阅读 · 0 评论 -
Leetcode 172. Factorial Trailing Zeroes
问题描述:找阶乘数字最后0的位数。问题链接:172. Factorial Trailing Zeroes刚开始想到先求出值,然后再不求10余数,不断除值统计,超时。求值,计算字符串最后0的个数,超时。大阶乘问题:所有的尾部的0可以看做都是2*5得来的,所以通过计算所有的因子中2和5的个数就可以知道尾部0的个数。实际上,2的个数肯定是足够的,所以只需计算5的个数即可。要注意,25...原创 2019-01-12 23:20:53 · 126 阅读 · 0 评论