摘要: 378. Kth Smallest Element in a Sorted Matrix 二分搜索 思路:每次扫描的统计小于中间值的个数,如果个数小于k,则说明不够,还要向右;如果个数大于k,则说明已经够了,那么则向左移动。 class Solution(object): def kthSmalle 阅读全文
posted @ 2017-09-06 21:51 banananana 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 102. Binary Tree Level Order Traversal 思路:使用两个队列即可,然后交换,这样就可以区分每一层的值了。 class Solution(object): def levelOrder(self, root): """ :type root: TreeNode :r 阅读全文
posted @ 2017-09-06 20:26 banananana 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 20. Valid Parentheses 思路:有效的括号 栈 class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ stack = [] for x in s: if x in '})]': 阅读全文
posted @ 2017-09-06 19:19 banananana 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 225. Implement Stack using Queues 思路:用两个队列实现 import collections class MyStack(object): def __init__(self): """ Initialize your data structure here. "" 阅读全文
posted @ 2017-09-06 19:01 banananana 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 232. Implement Queue using Stacks 思路:用两个栈来回换就行。 class MyQueue(object): def __init__(self): """ Initialize your data structure here. """ self.stack = [ 阅读全文
posted @ 2017-09-06 16:46 banananana 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 300. 最长上升子序列 题意 给定一个无序的整数数组,找到其中最长上升子序列的长度。 解题思路 动态规划:看到这种题目首先想到的就是dp,受到之前最长回文子串的影响,也以为是要用二维数组来解,然后用(i,j)记录区间的最长值,后来发现完全没有必要。假设dp[i]表示0到i中的最长序列长度,如果之前 阅读全文
posted @ 2017-09-06 16:22 banananana 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 301. Remove Invalid Parentheses 题意:删除最少的无效的括号,使得字符串符合规范。 DFS 思路:先记录需要删除的左括号和右括号,然后遇到左括号就删,遇到右括号就删,分别删到不能再删,考虑递归的各种情况,符合规范则加入。 class Solution(object): 阅读全文
posted @ 2017-09-06 11:48 banananana 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 129. Sum Root to Leaf Numbers 题意:计算所有从跟结点到叶结点路径的值的和 DFS 思路:将所有递归到叶结点路径的值累加 class Solution(object): res = 0 def sumNumbers(self, root): """ :type root: 阅读全文
posted @ 2017-09-06 09:59 banananana 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 108. 将有序数组转换为二叉搜索树 题意 将有序数组转化为链表; 解题思路 将数组切片,中间值作为根结点,两边则则作为左子树和右子树; 维护左右两个值,实现对数组切片的功能; 实现 阅读全文
posted @ 2017-09-06 09:11 banananana 阅读(179) 评论(0) 推荐(0) 编辑