基础知识
文章平均质量分 82
yuesoda
这个作者很懒,什么都没留下…
展开
-
LeetCode 686(python)
目录题目大意解题思路 题目地址 题目大意 判断当A字符串重复一定次数后,B是否能成为重复字符串的子字符串。 解题思路 当A重复一定次数后,长度比B长了,如果这种情况下B都不是A的子串,那么循环再多也没用。 class Solution: def repeatedStringMatch(self, A: str, B: str) -> int: na,nb = le...原创 2019-12-31 10:01:49 · 134 阅读 · 0 评论 -
LeetCode 647(python)
字符串中回文子字符串的个数方法一 动态规划法方法二 两边扩展法 这道题很经典,也很有重复回味的意义 方法一 动态规划法 动态规划的两个特点:第一大问题拆解为小问题,第二重复利用之前的计算结果,来解答这道题。 我们维护一个二维数组dp,其中dp[i][j]表示字符串区间[i, j]是否为回文串,当i = j时,只有一个字符,肯定是回文串,如果i = j + 1,说明是相邻字符,此时需要判断s[i]...原创 2019-12-26 14:27:17 · 248 阅读 · 0 评论 -
LeetCode 95(python)
目录题目描述解题思路 题目描述 1-N的数字,列出所有搜索二叉树的情况 解题思路 递归的思想,那么递归的出口是left>right,假设N = 1,那么如果是left == right作为出口,则丢掉结果。 每次把元素分为两部分,遍历着添加元素 # Definition for a binary tree node. # class TreeNode: # def __init__(...原创 2019-05-08 16:01:11 · 386 阅读 · 0 评论 -
LeetCode 96(python)
目录方法一方法二 方法一 这个方法是用到了数学方法,catalan数 (2n)!/((n+1)!*n!)。 def numTrees(self, n): return math.factorial(2*n)/(math.factorial(n)*math.factorial(n+1)) 方法二 第二种方法是动态规划的思想,求数量一般是用DP的思想 class Solution: ...原创 2019-05-09 17:19:58 · 342 阅读 · 0 评论 -
二叉树非递归的三种遍历(python)
二叉树非递归的三种遍历(python)前言先序遍历中序遍历后序遍历 前言 五一前参加了快手的面试,真的是丢脸,竟然不会写二叉树前中后序遍历的非递归方法,所以放假后总结一下 先序遍历 首先是先序遍历,需要借助一个堆栈,按照父亲节点、左孩子、右孩子的顺序压到堆里面,每次弹出栈顶元素 // 先序 def preorder(root): # 先序 stack = [] ...原创 2019-05-07 17:34:34 · 3441 阅读 · 2 评论 -
LeetCode 98(python)
二叉搜索树的判断方法一方法二 方法一 这种方法是利用递归的思想,lower < node.val < upper class Solution: def isValidBST(self, root: TreeNode) -> bool: if not root: return True def isBST(node,...原创 2019-05-10 14:53:08 · 252 阅读 · 0 评论