刷题笔记
一个小白的刷题笔记
歌者And贰向箔
迷茫的人儿
展开
-
二叉搜索树的最小绝对差 python(leetcode530)
530二叉搜索树的最小绝对差 看见BST的最小xx 二叉树有序,在二叉搜索树上求最值,求差值,想成在有序数组上求最值、求差值 做法1先由中序遍历得到数组,再遍历一遍数组 做法2中序遍历时直接计算 class Solution: def getMinimumDifference(self, root: TreeNode) -> int: # 最小绝对值差 利用中序遍历先得到数组 nums = [] def reverse(ro.原创 2022-05-16 11:09:38 · 376 阅读 · 0 评论 -
验证二叉搜索树python(leetcode98)
二叉搜索树 特点:1左节点小于中节点,中节点小于右节点 2左子树和右子树都是二叉搜索树,Leetcode定义二叉搜索树中不能有重复元素 中序遍历是左中右的顺序,可以中序遍历二叉树得到数组再判断数组是否增序 如果在中序遍历时进行判断容易陷入其他错误,不能单纯的比较左节点小于中间节点,右节点大于中间节点就完事了 class Solution: def isValidBST(self, root: Optional[TreeNode]) -> bool: # 先对二原创 2022-05-16 11:08:05 · 402 阅读 · 0 评论 -
二叉搜索树中的搜索python(leetcode700)
700二叉搜索树中的搜索 递归搜索,由搜索树本身的性质进行搜索 终止条件当root为空或者root.val==val时返回root 递归参数是val和root,返回值是root 当val>root.val时,此时val的节点在右侧,否则在左侧 递归时有返回值,当遇到满足条件直接输出 class Solution: def searchBST(self, root: TreeNode, val: int) -> TreeNode: # 二叉搜索树的特性原创 2022-05-16 11:06:35 · 330 阅读 · 0 评论 -
平衡二叉树python(leetcode110)
平衡二叉树python原创 2022-04-11 20:10:12 · 796 阅读 · 0 评论 -
路径总和python(leetcode112)
路径总和python原创 2022-02-09 12:32:08 · 605 阅读 · 0 评论 -
找树左下角的值python(leetcode513)
找树左下角的值# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution(object): def findB.原创 2022-02-07 21:05:20 · 951 阅读 · 0 评论 -
二叉树的所有路径python(leetcode257)
二叉树的所有路径原创 2022-02-07 11:37:44 · 985 阅读 · 0 评论 -
对称二叉树python(leetcode101)
对称二叉树原创 2022-01-16 17:21:40 · 579 阅读 · 0 评论 -
翻转二叉树python(leetcode226)
翻转一棵二叉树。原创 2022-01-15 17:22:11 · 385 阅读 · 0 评论 -
二叉树的最大深度python(leetcode104)
二叉树的最大深度原创 2022-01-15 17:18:11 · 215 阅读 · 0 评论 -
填充每个节点的下一个右侧节点指针II python(leetcode116)
填充每个节点的下一个右侧节点指针 II原创 2022-01-14 21:36:44 · 96 阅读 · 0 评论 -
填充每个节点的下一个右侧节点指针python(leetcode116)
填充每个节点的下一个右侧节点指针原创 2022-01-14 21:34:57 · 167 阅读 · 0 评论 -
二叉树的最小深度python(leetcode111)
二叉树的最小深度原创 2022-01-14 21:33:11 · 173 阅读 · 0 评论 -
在每个树行中找最大值python(leetcode515)
在每个树行中找最大值原创 2022-01-14 14:59:24 · 149 阅读 · 0 评论 -
二叉树的层平均值python(leetcode637)
二叉树的层平均值原创 2022-01-14 14:58:06 · 170 阅读 · 0 评论 -
N 叉树的层序遍历python3(leetcode429)
#429. N 叉树的层序遍历二叉树的层序遍历类型题目# extent添加一个deque到原deque中去,合并deque#append是将需要添加的对象作为一个整体,将[node1,node2,node3]append到[node0]后为[node0,[node1,node2,node3]]#而extend将对象中元素挨个拿出来再添加,extend后为[node0,node1,node2,node3]"""# Definition for a Node.class Nod...原创 2022-01-14 14:55:50 · 217 阅读 · 0 评论 -
二叉树的右视图python(leetcode199)
#199. 二叉树的右视图二叉树层序遍历题目# 示例中输出不是一层一层输出,因为每层只输出一个值#遍历时结点还是全部添加,关键是在添加的结点中找到最右侧结点# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = l..原创 2022-01-14 14:50:05 · 242 阅读 · 0 评论 -
二叉树的层序遍历 II python(leetcode107)
二叉树的层序遍历 II原创 2022-01-05 11:08:29 · 714 阅读 · 4 评论 -
二叉树的层序遍历python(leetcode102)
广度优先遍历可用队列实现,队列满足一层一层遍历的逻辑原创 2022-01-05 10:17:12 · 181 阅读 · 0 评论 -
二叉树的后序遍历python(leetcode145)
二叉树的后序遍历原创 2022-01-04 20:45:37 · 189 阅读 · 0 评论 -
二叉树的前序遍历python(leetcode144)
二叉树的前序遍历原创 2022-01-04 20:42:38 · 570 阅读 · 0 评论 -
二叉树的中序遍历python(leetcode94)
二叉树的中序遍历原创 2022-01-04 20:38:23 · 644 阅读 · 0 评论 -
滑动窗口最大值python(leetcode239)
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位原创 2022-01-03 16:34:16 · 249 阅读 · 0 评论 -
逆波兰表达式求值python(leetcode150)
根据 逆波兰表示法,求表达式的值原创 2022-01-03 10:44:30 · 373 阅读 · 0 评论 -
删除字符串中的所有相邻重复项python(leetcode1047)
删除字符串中的所有相邻重复项原创 2022-01-02 21:37:39 · 876 阅读 · 2 评论 -
有效的括号python(leetcode20)
括号有效,左括号必须有的对应的右括号括号匹配是栈解决的经典问题原创 2022-01-02 20:56:40 · 176 阅读 · 0 评论 -
用队列实现栈python(leetcode225)
#225. 用队列实现栈使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。class MyStack: """ python使用双向队列deque实现栈,普通的queue没有类似peek的功能,实现top比较复杂 双向队列中有append和appendleft分别是向右添加和向左添加元素, pop和popleft分别指向最右和最左的元素 使用append和popleft就是队列的操作原创 2022-01-02 10:58:00 · 435 阅读 · 0 评论 -
翻转字符串里的单词python(leetcode151)
151 翻转字符串里的单词原创 2021-12-22 22:15:32 · 689 阅读 · 0 评论 -
用栈实现队列python(leetcode232)
#232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):python中数组的pop默认是针对数组中的最后一个元素,数组的pop就是栈的pop操作class MyQueue(object): # 使用两个栈进行模拟队列 def __init__(self): self.stack_in = [] # 输入栈 self.stack_out = [] # 输出栈原创 2022-01-01 20:59:04 · 344 阅读 · 0 评论 -
反转字符串python(leetcode344)
#344. 反转字符串输入和输出都是列表的形式输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]class Solution(object): def reverseString(self, s): """ :type s: List[str] :rtype: None Do not return anything, modify s in-place instead.原创 2021-12-22 20:25:05 · 367 阅读 · 0 评论 -
哈希表(散列表,Hash Table)总结
哈希表(散列表,Hash Table)总结原创 2021-12-21 21:08:11 · 64 阅读 · 0 评论 -
三数之和python(leetcode15)
#15. 三数之和示例 :输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]注意:答案中不可以包含重复的三元组。class Solution(object): def threeSum(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ # n的范围 0 <= nu原创 2021-12-21 20:51:22 · 177 阅读 · 0 评论 -
四数之和python(leetcode18)
#18. 四数之和先来做15. 三数之和例子:输入:nums = [1,0,-1,0,-2,2], target = 0输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]是15. 三数之和的升级版class Solution(object): def fourSum(self, nums, target): """ :type nums: List[int] :type target: int原创 2021-12-21 20:33:43 · 158 阅读 · 0 评论 -
四数相加 II python(leetcode454)
#454. 四数相加 II得到满足A[i]+B[j]+C[k]+D[l]=0A[i]+B[j]+C[k]+D[l]=0的四元组数目将四个数组分成两部分,AA和BB为一组,CC和DD为另外一组 # 分两步计算 # 第一步计算nums1和nums2中相加的值,值作为key,每个值出现的次数作为value存入哈希表record # 第二步计算nums3和nums4中相加的值,计算-(nums3+nums4),如果其在record中出现,则...原创 2021-12-21 10:52:05 · 322 阅读 · 0 评论 -
两个数组的交集 II python(leetcode350)
#350. 两个数组的交集 II借鉴上篇文章leetcode349输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]class Solution(object): def intersect(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: List[int]原创 2021-12-17 10:13:28 · 440 阅读 · 0 评论 -
两个数组的交集python(leetcode349)
#349. 两个数组的交集例子:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序python最简洁解法:class Solution(object): def intersection(self, nums1, nums2): """ .原创 2021-12-17 10:11:18 · 558 阅读 · 0 评论 -
赎金信python(leetcode383)
#383. 赎金信与242. 有效的字母异位词题目类似给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。其他条件:magazine中的每个字符只能在ransomNote中使用一次ransomNote和magazine由小写英文字母组成解题:全是小写,可以由数组存储magazine各字符出现的次数,再判断ransomNote中各字符出...原创 2021-12-15 11:47:48 · 207 阅读 · 0 评论 -
有效的字母异位词python(leetcode242)
#242. 有效的字母异位词第一个哈希表题目输入: s = "anagram", t = "nagaram"输出: true输入: s = "rat", t = "car"输出: falses和t仅包含小写字母class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rtype: bool ...原创 2021-12-15 11:30:07 · 847 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面python(剑指offer21)
#剑指 Offer 21. 调整数组顺序使奇数位于偶数前面输入:nums =[1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。#双指针 快慢指针class Solution: def exchange(self, nums: List[int]) -> List[int]: # 双指针 快慢指针 slow, fast = 0, 0 while(fast < len(nums)):..原创 2021-12-15 10:51:16 · 742 阅读 · 0 评论 -
和为s的两个数字python(剑指offer57)
#剑指 Offer 57. 和为s的两个数字示例 :输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """原创 2021-12-14 22:21:42 · 367 阅读 · 0 评论