随笔分类 -  LeetCode Python

1 2 3 4 5 ··· 8 下一页
摘要:题目来源: https://leetcode.com/problems/min-stack/ 题意分析: 实现一个小的栈,包括初始化,push,pop,top,和getMin。 题目思路: 思路是用两个数组来处理。 代码(python): 1 class MinStack(object): 2 de 阅读全文
posted @ 2016-05-10 17:07 Ry_Chen 阅读(969) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ 题意分析: 给定一个有重复的翻转的数组,找到最小的数。 题目思路: 由于有重复的存在,所以当中间数和两端存在相等的时候就不能用二分的方法来做了,最 阅读全文
posted @ 2016-05-10 17:04 Ry_Chen 阅读(332) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/ 题意分析: 在一个不重复的翻转的数组里面找到最小那个。例如:4 5 6 7 0 1 2,最小是0. 题目思路: 这里可以利用二分的方法去找最小的值。 代 阅读全文
posted @ 2016-05-10 16:54 Ry_Chen 阅读(476) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/maximum-product-subarray/ 题意分析: 给定一个数组,这个数组所有子数组都有一个乘积,那么返回最大的乘积。 题目思路: 由于题目输入的都是整型的,所以所有的数相差获得的是最大或者最小值。那么我们同时记录可 阅读全文
posted @ 2016-05-10 16:30 Ry_Chen 阅读(431) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/reverse-words-in-a-string/ 题意分析: 给定一个字符串,里面包括多个单词,将这个字符串的单词翻转,例如"the sky is blue",得到"blue is sky the". 题目思路: 首先获取每 阅读全文
posted @ 2016-05-10 16:20 Ry_Chen 阅读(457) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/evaluate-reverse-polish-notation/ 题意分析: 给定一个数组,用这个数组来表示加减乘除,例如 题目思路: 这里考虑的是栈的使用。如果是数字那么push进栈,如果不是,那么把栈后两个数pop出来,进 阅读全文
posted @ 2016-05-10 16:08 Ry_Chen 阅读(429) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/max-points-on-a-line/ 题意分析: 在一个2D的板上面有很多个点,判断最多有多少个点在同一条直线上。 题目思路: 这里我们可以用斜率来记录两条边是否在同一条直线。如果考虑再细一点,由于double有精度的问题 阅读全文
posted @ 2016-05-10 15:54 Ry_Chen 阅读(1071) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/sort-list/ 题意分析: 用nlog(n)的时间复杂度实现一个链表的排序。 题目思路: 用归并排序的思想,将链表用快慢指针分成两半,然后两半排好序,最后归并。 代码(python): # Definition for s 阅读全文
posted @ 2016-05-10 15:40 Ry_Chen 阅读(1328) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/insertion-sort-list/ 题意分析: 用插入排序排序一个链表。 题目思路: 这题没什么好说的,直接用插入排序就行。 代码(python): 1 # Definition for singly-linked lis 阅读全文
posted @ 2016-05-10 15:31 Ry_Chen 阅读(317) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/lru-cache/ 实现一个LRU缓存。直接上代码。 代码(python): 1 class LRUCache(object): 2 3 def __init__(self, capacity): 4 """ 5 :type 阅读全文
posted @ 2016-05-10 15:26 Ry_Chen 阅读(738) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/binary-tree-postorder-traversal/ 题意分析: 后序遍历一棵树,递归的方法很简单,尝试用非递归的方法。 题目思路: 后序遍历的顺序是,先左子树,再右子树,最后才是根节点。递归的思想很简单,那么非递归 阅读全文
posted @ 2016-05-10 13:52 Ry_Chen 阅读(459) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/binary-tree-preorder-traversal/ 题意分析: 前序遍历一棵树,递归的方法很简单。那么非递归的方法呢。 题目思路: 前序遍历的顺序是先遍历根节点,再遍历左子树,最后遍历右子树。递归的方法很直观。非递归 阅读全文
posted @ 2016-05-10 13:41 Ry_Chen 阅读(344) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/reorder-list/ 题意分析: 给定一个链表L:L0→L1→…→Ln-1→Ln,改变链表的排序为: L0→Ln→L1→Ln-1→L2→Ln-2→…,要求时间复杂度为O(n),不能改变节点的值。 题目思路: 题目思路是把链 阅读全文
posted @ 2016-05-09 17:07 Ry_Chen 阅读(389) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/linked-list-cycle-ii/ 题意分析: 给定一个链表,如果链表有环,返回环的起始位置,否则返回NULL。要求常量空间复杂度。 题目思路: 首先可以用快慢指针链表是否有环。假设链表头部到环起点的距离为n,环的长度为 阅读全文
posted @ 2016-05-09 17:01 Ry_Chen 阅读(670) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/linked-list-cycle/ 题意分析: 给定一个链表,判断链表是否有环。要求O(1)空间时间复杂度。 题目思路: 用快慢指针可以解决这个问题。一个指针每次走两步,一个每次走一步,那么有环的等价条件是两个指针有重合。通过 阅读全文
posted @ 2016-04-28 16:59 Ry_Chen 阅读(638) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/word-break-ii/ 题意分析: 给定一个字符串s和一个字典dict(set),将所有将s有字典dict组成的结果输出。比如s = "catsanddog",dict = ["cat", "cats", "and", " 阅读全文
posted @ 2016-04-28 16:45 Ry_Chen 阅读(613) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/word-break/ 题意分析: 给定一个字符串s和一个字典dict,判断s是不是由字典dict里面的元素组成的。 题目思路: 这里可以用动态规划的思想。首先用一个tq[] 存储所有s[:i] 可以由dict组成的下标。如果存 阅读全文
posted @ 2016-04-07 16:00 Ry_Chen 阅读(580) 评论(0) 推荐(0)
摘要:这道题目不是太懂,参考了http://www.cnblogs.com/zuoyuan/p/3745126.html的博客。 题意: A linked list is given such that each node contains an additional random pointer whi 阅读全文
posted @ 2016-04-07 15:39 Ry_Chen 阅读(504) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/single-number-ii/ 题意分析: 给定一个数组,数组里面每一个数字都出现了3次除了一个,找出那个数。要求时间复杂度O(n),空间复杂度O(1)。 题目思路: 把所有的数转化成32位的2进制。那么如果没有只出现一次的 阅读全文
posted @ 2016-04-07 15:37 Ry_Chen 阅读(401) 评论(0) 推荐(0)
摘要:题目来源: https://leetcode.com/problems/single-number/ 题意分析: 给定一个数组,每个数都出现了2次,只有一个出现了一次,找出这个数。要求时间复杂度O(n),空间复杂度O(1)。 题目思路: 这道题目利用位操作。位操作的异或(^),他的其中一个属性是,n 阅读全文
posted @ 2016-04-05 16:03 Ry_Chen 阅读(503) 评论(0) 推荐(0)

1 2 3 4 5 ··· 8 下一页