摘要:
题目来源: https://leetcode.com/problems/min-stack/ 题意分析: 实现一个小的栈,包括初始化,push,pop,top,和getMin。 题目思路: 思路是用两个数组来处理。 代码(python): 1 class MinStack(object): 2 de 阅读全文
摘要:
题目来源: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array-ii/ 题意分析: 给定一个有重复的翻转的数组,找到最小的数。 题目思路: 由于有重复的存在,所以当中间数和两端存在相等的时候就不能用二分的方法来做了,最 阅读全文
摘要:
题目来源: https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/ 题意分析: 在一个不重复的翻转的数组里面找到最小那个。例如:4 5 6 7 0 1 2,最小是0. 题目思路: 这里可以利用二分的方法去找最小的值。 代 阅读全文
摘要:
题目来源: https://leetcode.com/problems/maximum-product-subarray/ 题意分析: 给定一个数组,这个数组所有子数组都有一个乘积,那么返回最大的乘积。 题目思路: 由于题目输入的都是整型的,所以所有的数相差获得的是最大或者最小值。那么我们同时记录可 阅读全文
摘要:
题目来源: https://leetcode.com/problems/reverse-words-in-a-string/ 题意分析: 给定一个字符串,里面包括多个单词,将这个字符串的单词翻转,例如"the sky is blue",得到"blue is sky the". 题目思路: 首先获取每 阅读全文
摘要:
题目来源: https://leetcode.com/problems/evaluate-reverse-polish-notation/ 题意分析: 给定一个数组,用这个数组来表示加减乘除,例如 题目思路: 这里考虑的是栈的使用。如果是数字那么push进栈,如果不是,那么把栈后两个数pop出来,进 阅读全文
摘要:
题目来源: https://leetcode.com/problems/max-points-on-a-line/ 题意分析: 在一个2D的板上面有很多个点,判断最多有多少个点在同一条直线上。 题目思路: 这里我们可以用斜率来记录两条边是否在同一条直线。如果考虑再细一点,由于double有精度的问题 阅读全文
摘要:
题目来源: https://leetcode.com/problems/sort-list/ 题意分析: 用nlog(n)的时间复杂度实现一个链表的排序。 题目思路: 用归并排序的思想,将链表用快慢指针分成两半,然后两半排好序,最后归并。 代码(python): # Definition for s 阅读全文
摘要:
题目来源: https://leetcode.com/problems/insertion-sort-list/ 题意分析: 用插入排序排序一个链表。 题目思路: 这题没什么好说的,直接用插入排序就行。 代码(python): 1 # Definition for singly-linked lis 阅读全文
摘要:
题目来源: https://leetcode.com/problems/lru-cache/ 实现一个LRU缓存。直接上代码。 代码(python): 1 class LRUCache(object): 2 3 def __init__(self, capacity): 4 """ 5 :type 阅读全文
摘要:
题目来源: https://leetcode.com/problems/binary-tree-postorder-traversal/ 题意分析: 后序遍历一棵树,递归的方法很简单,尝试用非递归的方法。 题目思路: 后序遍历的顺序是,先左子树,再右子树,最后才是根节点。递归的思想很简单,那么非递归 阅读全文
摘要:
题目来源: https://leetcode.com/problems/binary-tree-preorder-traversal/ 题意分析: 前序遍历一棵树,递归的方法很简单。那么非递归的方法呢。 题目思路: 前序遍历的顺序是先遍历根节点,再遍历左子树,最后遍历右子树。递归的方法很直观。非递归 阅读全文