LeetCode
文章平均质量分 79
前度丶
这个作者很懒,什么都没留下…
展开
-
链表
环的起点对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展: 你能给出不利用额外空间的解法么?if not head: return Nonefast,slow=head,head # 用快慢指针,如果有环必定相遇 且因为快是慢的俩倍,多出来的慢走的while fast and fast.next: # 就是环长度,这时快指正指向头结点继续走整个长度-环,刚好慢指针 fast=fast.next.next # 走完整个链原创 2020-08-31 17:30:36 · 109 阅读 · 0 评论 -
树
109. 有序链表转换二叉搜索树给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5def findmid(l,r): f原创 2020-08-18 15:08:53 · 125 阅读 · 0 评论 -
DFS
130. 被围绕的区域给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X设置一个函数m(x,y),如果是‘O’则变成‘A’深度搜索与他相连的def m(x,y): if 0<=x<row and 0<=y<col a原创 2020-08-13 17:22:17 · 77 阅读 · 0 评论 -
数组
118. 杨辉三角给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]可以发现每一行比前一行多一个数 121=011+110 可以俩个列表 分别收尾加0后相加得到。...原创 2020-06-29 16:54:24 · 300 阅读 · 0 评论 -
回溯
22. 括号生成输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]用了回溯算法。设置一个函数 f(列表,left,right) 这里用的是if if 不是if else。如果左括号left<n,则list.append("(")然后 f(列表,left+1,right)然后list.pop()如果right<left,则list.a原创 2020-06-08 11:19:51 · 149 阅读 · 0 评论 -
字符串
3. 无重复字符的最长子串输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。设一个dp[1]*N数组存以i位置数结尾的最长子串的长度,往后每加一个看i+1位置上的字符在不在s[i+1-dp[i]: i+1]里面,不在就dp[i+1]=dp[i]+1 。在的话就设个函数找以i+1字符结尾的往前找到i+1字符的数为止算长度。注意输入为空时 因为dp初始值是15. 最长回文子串输入: "babad"输出: "bab"注意: "aba" 也是一原创 2020-06-07 20:35:14 · 378 阅读 · 0 评论