自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 LeetCode 9. 回文数(Easy)/ 564. 寻找最近的回文数(Hard)

题目链接代码class Solution: ### 0212 判断一半的数字(72 ms,14.7 MB) def isPalindrome(self, x: int) -> bool: # x为负 or x大于0且x的个位为0,直接返回False if x < 0 or (x > 0 and x % 10 == 0): return False res = 0 # 若当前数x.

2021-02-12 11:26:06 123

原创 LeetCode 89. 格雷编码(Medium)

题目链接题解Gray Code (镜像反射法,图解)思路代码class Solution: ### 0212 镜像反射法(48 ms,18.1 MB) def grayCode(self, n: int) -> List[int]: res, first_digit = [0], 1 # i表示位数,j表示上一轮格雷码的 逆序 取值 for i in range(n): for j in ran.

2021-02-12 10:57:33 123

原创 LeetCode 43. 字符串相乘(Medium)/ 415. 字符串相加(Easy)/ 36进制加法 / 171. Excel 表列序号(E)/ 989. 数组形式的整数加法(E)/ 进制问题!!

题目链接题解字符串相乘思路代码class Solution: ### 0210 模拟(124 ms,15 MB) def multiply(self, num1: str, num2: str) -> str: if num1 == '0' or num2 == '0': return '0' m, n = len(num1), len(num2) # 长度为m和n的两个数的乘积最多为(m+n)位数,至少为(m+.

2021-02-10 23:09:07 241 1

原创 LeetCode 217. 存在重复元素(Easy)

题目链接代码class Solution: ### 0209 哈希表(44 ms,21.4 MB) def containsDuplicate(self, nums: List[int]) -> bool: dct = {} for num in nums: dct[num] = num in dct if dct[num]: return True return False .

2021-02-09 22:09:39 101

原创 LeetCode 237. 删除链表中的节点(Easy)

题目链接代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: ### 0209 原地删除下一个节点(44 ms,15.2 MB) def deleteNode(self, node): """ :type .

2021-02-09 22:00:54 78

原创 LeetCode 7. 整数反转(Easy)

题目链接代码class Solution: ### 0209 逆序求解(52 ms,14.9 MB) def reverse(self, x: int) -> int: # 首先对x求绝对值 res, y = 0, abs(x) # 注意:bound也取绝对值,不分正负 bound = 2 ** 31 if x < 0 else 2 ** 31 - 1 # 当y中的位数还有时,进行循环 .

2021-02-09 21:11:46 117

原创 LeetCode 16. 最接近 target 的三数之和(Medium)

题目链接代码class Solution: ### 0208 排序 + 双指针(128 ms,14.7 MB) def threeSumClosest(self, nums: List[int], target: int) -> int: # 首先对数组排序 nums.sort() # 初始化与target最接近的值res为正无穷 n, res = len(nums), float('+inf') .

2021-02-08 22:49:03 136

原创 LeetCode 292. Nim 游戏(Easy)/ 319. 灯泡开关(M)/ 365. 水壶问题(M)

题目链接代码class Solution: # 0208 数学法(40 ms,14.9 MB) def canWinNim(self, n: int) -> bool: return n % 4 != 0

2021-02-08 22:22:20 122

原创 LeetCode 61. 旋转链表(Medium)/ 234. 回文链表(Easy)/ 148. 排序链表(Medium)/ 143. 重排链表(Medium)/ 328. 奇偶链表(Medium)

题目链接代码# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: ### 0208 遍历(40 ms,14.8 MB) def rotateRight(self, head: ListNode, k: int).

2021-02-08 22:14:50 175

原创 LeetCode 26.【原地】删除排序数组中的重复项(Easy)

题目链接代码class Solution: ### 0208 快慢双指针(44 ms,15.9 MB) def removeDuplicates(self, nums: List[int]) -> int: # 初始化快、慢双指针 i, j = 0, 1 # 当快指针不越界时,进行循环 while j < len(nums): # 若快、慢指针的元素不相等,慢指针前进,且记录慢指针指向.

2021-02-08 21:40:27 89

原创 LeetCode 230. 二叉搜索树中第 K 小的元素(Medium)

题目链接代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: ### 0208 迭代(44 ms,18.5 MB) def..

2021-02-08 21:12:21 95

原创 LeetCode 14. 最长公共前缀(Easy)

题目链接题解最长公共前缀思路代码class Solution: ### 0207 纵向对比(32 ms,15.1 MB) def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: return '' length, n = len(strs[0]), len(strs) for i in range(length): .

2021-02-07 22:23:58 93 1

原创 LeetCode 231. 2的幂(Easy)/ 326. 3 的幂(Easy)/ 342. 4的幂(Easy)

题目链接题解2 的幂 (位运算,极简解法+图表解析)思路代码class Solution: ### 0207 位运算(56 ms,14.7 MB) def isPowerOfTwo(self, n: int) -> bool: # 前提:n是否大于0 return n > 0 and n & (n - 1) == 0...

2021-02-07 21:37:00 71 1

原创 LeetCode 59. 螺旋矩阵 II(Medium)/ 885.(从指定位置开始,逆时针走的)螺旋矩阵 II / 2326.(根据链表来生成一个)螺旋矩阵 IV

题目链接题解Spiral Matrix II (模拟法,设定边界,代码简短清晰)代码class Solution: ### 0207 模拟法(44 ms,14.8 MB) def generateMatrix(self, n: int) -> List[List[int]]: # 初始化边界下标和数字统计变量cnt l, r, t, b = 0, n-1, 0, n-1 cnt = 1 # 定义二维数组 .

2021-02-07 20:48:40 123

原创 LeetCode 448. 找到数组中所有缺失的数字(Easy)/ 41. 缺失的第一个正数(H)/ 1060.(有序数组中)缺失的第 K 个数(H)/ 442. 【1~N中】出现 2 次的数(M)

题目链接题解详细图解 448.找到所有数组中消失的数字代码class Solution: ### 0206 找规律(404 ms,22.8 MB) def findDisappearedNumbers(self, nums: List[int]) -> List[int]: res = [] # 第一次遍历:根据数组的值找到对应的下标 for num in nums: # 注意:这里需要使用绝对值来.

2021-02-06 22:28:13 352 1

原创 LeetCode 621. 任务调度器(Medium)

题目链接题解任务调度器思路代码class Solution: ### 0206 公式(72 ms,16.3 MB) def leastInterval(self, tasks: List[str], n: int) -> int: length = len(tasks) if length <= 1: return length # 统计每个task的数量 task_map = collectio.

2021-02-06 22:00:56 142

原创 LeetCode 112. 路径总和(Easy)/ 113. 路径总和 II(Medium)/ 437. 路径总和 III(Medium)/ 带权树的直径(Hard)/ 二叉树的路径问题!!!

题目链接题解路径总和 III代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: ### 0206 递归(176 ms,35.

2021-02-06 21:24:19 280 1

原创 LeetCode 338.【二进制中 1 的数量】比特位计数(Medium)

题目链接题解字符串解码思路代码class Solution: ### 0205 动态规划(84 ms,21.4 MB) def countBits(self, num: int) -> List[int]: dp = [0] * (num + 1) # 注意:只需遍历一半的下标即可! for i in range(num // 2 + 1): # 某个大的偶数可由另一个较小的偶数右移一位得到 .

2021-02-05 22:58:35 89

原创 LeetCode 94. (返回)二叉树的前序、中序、后序遍历(Medium)

题目链接代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: ### 0205 迭代(40 ms,14.9 MB) def .

2021-02-05 22:42:41 100

原创 LeetCode 20. 有效的括号(Easy)

题目链接题解有效的括号(辅助栈法,极简+图解)思路代码class Solution: ### 0205 辅助栈(36 ms,14.9 MB) def isValid(self, s: str) -> bool: dct = {'[': ']', '{': '}', '(': ')', '.': '.'} stack = ['.'] # 预先存放一个非括号值,防止一开始的空栈情况 for c in s: .

2021-02-05 22:26:38 165

原创 LeetCode 98. 验证二叉搜索树(Medium)/ 958. 验证完全二叉树(Medium)/ 450.【仍为二叉搜索树】删除二叉搜索树中的节点(M)

题目链接题解验证二叉搜索树思路代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: ### 0204 递归(44 m.

2021-02-04 23:40:16 116 1

原创 LeetCode 538. 把二叉搜索树转换为累加树(Medium)

题目链接题解把二叉搜索树转换为累加树中序遍历(递归和迭代)思路代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: .

2021-02-04 22:41:46 108

原创 LeetCode 399. 除法求值(Medium)

题目链接题解图论问题 Floyd算法除法求值思路代码class Solution: ### 0203 Floyd算法(36 ms,15 MB) def calcEquation(self, equations: List[List[str]], values: List[float], queries: List[List[str]]) -> List[float]: graph = collections.defaultdict(int) .

2021-02-03 23:03:27 168 1

原创 LeetCode 543. 二叉树的直径(Easy)/ 662. 二叉树的最大宽度(Medium)

题目链接题解二叉树的直径思路代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: ### 0203 DFS(52 ms,17 MB) def diameterOfBin.

2021-02-03 22:08:46 101

原创 LeetCode 394. 【根据括号展开】字符串解码(Medium)/ 面试题 01.06. 字符串压缩(Easy)/ 1047. 删除字符串中的所有相邻重复项【消消乐】

题目链接题解字符串解码(辅助栈法 / 递归法,清晰图解)思路代码class Solution: ### 0203 辅助栈(40 ms,14.9 MB) def decodeString(self, s: str) -> str: stack, res, multi = [], '', 0 for c in s: # 若当前字符为[,则入栈 # 注意:需重置res和multi,保存新的子.

2021-02-03 21:30:30 131

原创 LeetCode 17.【合并】二叉树(Easy)

题目链接题解合并二叉树动画演示 递归+迭代 617.合并二叉树思路代码# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: .

2021-02-02 23:18:30 107

原创 LeetCode 39.【总和为 target 的数组】组合总和 / 40. 组合总和 II(Medium)/ 377. 组合总和 Ⅳ(M)

题目链接题解组合总和思路代码class Solution: ### 0202 回溯法(84 ms,15 MB) def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: def backtrace(idx, sub, residue): # 若不剪枝,则需要考虑待求值为负的情况,直接返回 if re.

2021-02-02 22:02:02 161

原创 LeetCode 19. 删除链表的倒数第 N 个结点(Medium)/ 调用 ListNode!!!

题目链接题解添加链接描述思路代码# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: ### 0202 双指针(44 ms,14.9 MB) def removeNthFromEnd(self,.

2021-02-02 21:29:54 165

原创 LeetCode 200. 岛屿数量(Easy)/ 695.岛屿的最大面积(Medium)/ 305. 岛屿数量 II(Hard)/ 130.【把O变成X】被围绕的区域(Medium)

题目链接题解200. 岛屿数量(DFS / BFS)思路代码class Solution: ### 0201 DFS(72 ms,18.7 MB) def numIslands(self, grid: List[List[str]]) -> int: # dfs使用 or def dfs(i, j): if not 0 <= i < len(grid) or not 0 <= j < .

2021-02-01 23:47:27 131

原创 LeetCode 139. 单词拆分(Medium)/ 140. 单词拆分 II(Hard)

题目链接题解动态规划+记忆化回溯 逐行解释 python3思路代码class Solution: ### 0201 动态规划(84 ms,14.9 MB) def wordBreak(self, s: str, wordDict: List[str]) -> bool: n = len(s) # dp[i]表示s的前i个字符能否由wordDict中单词表示 dp = [False] * (n + 1) .

2021-02-01 22:44:48 194

原创 LeetCode 78. 子集 / 90. 子集 II(Easy)/ 【排列】

子集子集 II题解回溯算法代码子集class Solution: ### 0201 迭代(48 ms,15.1 MB) def subsets(self, nums: List[int]) -> List[List[int]]: res = [[]] for num in nums: # 上一轮res表示已有的组合 # 列表生成式表示当前num与每一个已有组合进行搭配 ..

2021-02-01 22:04:38 113

原创 LeetCode 4. 寻找两个正序数组的中位数(Hard)/ 上中位数

题目链接题解寻找两个正序数组的中位数思路代码class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: def getKthElement(k): """ - 主要思路:要找到第 k (k>1) 小的元素,那么就取 pivot1 = nums1[k/2-1] 和 pivot2.

2021-02-01 00:46:35 204 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除