LeetCode刷题
LeetCode疯狂刷
aJupyter
自然语言处理方向在读硕士生,CSDN人工智能领域优质创作者,语雀知识库构建者,欢迎大家交流~
https://github.com/aJupyter
展开
-
2476. 二叉搜索树最近节点查询
时间复杂度: O(nlgn)O(nlgn)O(nlgn) 遍历查询O(n)O(n)O(n)+二分O(lgn)O(lgn)O(lgn)空间复杂度: O(n)O(n)O(n) n个节点,递归调用栈需要O(n)O(n)O(n)的空间,存储答案也是O(n)O(n)O(n)的空间。原创 2024-02-24 16:08:34 · 844 阅读 · 1 评论 -
从前序与中序遍历序列构造二叉树
时间复杂度:空间复杂度:原创 2024-02-20 21:31:55 · 896 阅读 · 0 评论 -
2859. 计算 K 置位下标对应元素的和
时间复杂度:空间复杂度:原创 2024-01-25 21:57:40 · 387 阅读 · 0 评论 -
54. 螺旋矩阵
时间复杂度:空间复杂度:心得一定耐心细致,不要急。原创 2024-01-15 20:45:29 · 409 阅读 · 0 评论 -
82. 删除排序链表中的重复元素 II
时间复杂度:空间复杂度:过于暴力优化:因为是有序,所以相邻元素必定挨着。如果当前位置a的下一个元素b与下一个元素c相等,那么当前位置的next指针应该指向c,重复此操作直到没有一样的元素。原创 2024-01-15 17:04:21 · 512 阅读 · 0 评论 -
2085. 统计出现过一次的公共字符串
时间复杂度:空间复杂度:原创 2024-01-12 19:54:42 · 428 阅读 · 0 评论 -
9. 回文数
字符串反转Code方法一:转为字符串方法二:整数反转原创 2023-09-23 17:34:14 · 128 阅读 · 0 评论 -
LCP 06. 拿硬币
对于任意一堆,优先拿两个。如果有剩余,则必然剩余1个,再多拿一次即可。原创 2023-09-20 20:49:08 · 151 阅读 · 0 评论 -
7. 整数反转
C++中整形最大/最小的数字宏定义。原创 2023-09-19 15:16:01 · 115 阅读 · 0 评论 -
6. N 字形变换
需要注意的是当n为1时,公差。原创 2023-09-19 14:56:53 · 129 阅读 · 0 评论 -
5. 最长回文子串
两个方向遍历字符串,判断是否满足两者字符相等的情况。遍历字符串即可,判断是否满足两者字符相等的情况。,如果回文字符串的长度为奇数,则从左右。枚举回文字符串的中间位置。原创 2023-09-19 14:23:08 · 103 阅读 · 0 评论 -
128. 最长连续序列
将各个数字存储到哈希表中,如果。是一段连续区间的开始,用。使用集合来实现存储。判断是否在集合中存在。原创 2023-09-18 19:55:50 · 104 阅读 · 0 评论 -
字母异位词分组
排序,字母异位词便可以转换成同等的排序后的字符串。类可以原地排序,返回的是排序完的结果。原创 2023-09-18 11:55:52 · 95 阅读 · 0 评论 -
824. 山羊拉丁文(模拟)
文章目录QuestionIdeasCodeQuestion824. 山羊拉丁文给你一个由若干单词组成的句子 sentence ,单词间由空格分隔。每个单词仅由大写和小写英文字母组成。请你将句子转换为 “山羊拉丁文(Goat Latin)”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头('a', 'e', 'i', 'o', 'u'),在单词后添加"ma"。例如,单词 "apple" 变为 "applema" 。如果单词以辅音字母开头(原创 2022-04-21 14:58:24 · 293 阅读 · 4 评论 -
821. 字符的最短距离(字符串)
文章目录QuestionIdeasCodeQuestion821. 字符的最短距离给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。返回一个整数数组 answer ,其中 answer.length == s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。两个下标 i 和 j 之间的 距离 为 abs(i - j) ,其中 abs 是绝对值函数。 示例 1:输入:s = "loveleetcode", c =原创 2022-04-19 17:53:14 · 236 阅读 · 4 评论 -
386. 字典序排数(排序,一行代码秒杀,时间超过90%的用户)
文章目录QuestionIdeasCodeQuestion386. 字典序排数给你一个整数 n ,按字典序返回范围 [1, n] 内所有整数。你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1:输入:n = 13输出:[1,10,11,12,13,2,3,4,5,6,7,8,9]示例 2:输入:n = 2输出:[1,2] 提示:1 <= n <= 5 * 104来源:力扣(LeetCode)链接:https://le原创 2022-04-18 23:25:16 · 379 阅读 · 2 评论 -
1672. 最富有客户的资产总量(数组排序)
文章目录QuestionIdeasCodeQuestion1672. 最富有客户的资产总量给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量原创 2022-04-14 10:55:39 · 209 阅读 · 2 评论 -
429. N 叉树的层序遍历
文章目录QuestionIdeasCodeQuestion429. N 叉树的层序遍历给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。 示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10原创 2022-04-08 12:15:41 · 163 阅读 · 0 评论 -
762. 二进制表示中质数个计算置位(判断质数)
文章目录QuestionIdeasCodeQuestion762. 二进制表示中质数个计算置位给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数。计算置位位数 就是二进制表示中 1 的个数。例如, 21 的二进制表示 10101 有 3 个计算置位。 示例 1:输入:left = 6, right = 10输出:4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 111原创 2022-04-05 08:59:43 · 419 阅读 · 0 评论 -
307. 区域和检索 - 数组可修改(树状数组)
文章目录QuestionIdeasCodeQuestion307. 区域和检索 - 数组可修改给你一个数组 nums ,请你完成两类查询。其中一类查询要求 更新 数组 nums 下标对应的值另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nums元素的 和 ,其中 left <= right实现 NumArray 类:NumArray(int[] nums) 用整数数组 nums 初始化对象void update(int index, in原创 2022-04-04 19:23:49 · 161 阅读 · 0 评论 -
744. 寻找比目标字母大的最小字母(二分)
文章目录QuestionIdeasCodeQuestion744. 寻找比目标字母大的最小字母给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。在比较时,字母是依序循环出现的。举个例子:如果目标字母 target = 'z' 并且字符列表为 letters = ['a', 'b'],则答案返回 'a' 示例 1:输入: letters = ["c", "f", "j"],target原创 2022-04-03 11:00:59 · 169 阅读 · 2 评论 -
728. 自除数(数学)
文章目录QuestionIdeasCodeQuestion728. 自除数自除数 是指可以被它包含的每一位数整除的数。例如,128 是一个 自除数 ,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。自除数 不允许包含 0 。给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。 示例 1:输入:left = 1, right = 22输出:[1, 2, 3, 4, 5, 6,原创 2022-03-31 09:06:23 · 443 阅读 · 0 评论 -
2024. 考试的最大困扰度(滑动窗口)
文章目录QuestionIdeasCodeQuestion2024. 考试的最大困扰度一位老师正在出一场由 n 道判断题构成的考试,每道题的答案为 true (用 'T' 表示)或者 false (用 'F' 表示)。老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就是连续出现 true 或者连续出现 false)。给你一个字符串 answerKey ,其中 answerKey[i] 是第 i 个问题的正确结果。除此以外,还给你一个整数 k ,表示你能进行以下原创 2022-03-29 10:32:38 · 194 阅读 · 0 评论 -
693. 交替位二进制数(进制转换)
文章目录QuestionIdeasCodeQuestion693. 交替位二进制数给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 示例 1:输入:n = 5输出:true解释:5 的二进制表示是:101示例 2:输入:n = 7输出:false解释:7 的二进制表示是:111.示例 3:输入:n = 11输出:false解释:11 的二进制表示是:1011. 提示:1 <= n <原创 2022-03-28 21:37:51 · 247 阅读 · 0 评论 -
2028. 找出缺失的观测数据(模拟)
文章目录QuestionIdeasCodeQuestion2028. 找出缺失的观测数据现有一份 n + m 次投掷单个 六面 骰子的观测数据,骰子的每个面从 1 到 6 编号。观测数据中缺失了 n 份,你手上只拿到剩余 m 次投掷的数据。幸好你有之前计算过的这 n + m 次投掷数据的 平均值 。给你一个长度为 m 的整数数组 rolls ,其中 rolls[i] 是第 i 次观测的值。同时给你两个整数 mean 和 n 。返回一个长度为 n 的数组,包含所有缺失的观测数据,且满足这 n +原创 2022-03-27 21:41:18 · 110 阅读 · 0 评论 -
682. 棒球比赛
文章目录QuestionIdeasCodeQuestion682. 棒球比赛你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x"+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。"D" - 表示本回合新原创 2022-03-26 10:02:36 · 148 阅读 · 0 评论 -
172. 阶乘后的零
文章目录QuestionIdeasCodeQuestion172. 阶乘后的零给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例 1:输入:n = 3输出:0解释:3! = 6 ,不含尾随 0示例 2:输入:n = 5输出:1解释:5! = 120 ,有一个尾随 0示例 3:输入:n = 0输出:0 提示:0 <= n <= 104来源:原创 2022-03-25 15:00:48 · 199 阅读 · 0 评论 -
2038. 如果相邻两个颜色均相同则删除当前颜色(贪心)
文章目录QuestionIdeasCodeQuestion2038. 如果相邻两个颜色均相同则删除当前颜色总共有 n 个颜色片段排成一列,每个颜色片段要么是 'A' 要么是 'B' 。给你一个长度为 n 的字符串 colors ,其中 colors[i] 表示第 i 个颜色片段的颜色。Alice 和 Bob 在玩一个游戏,他们 轮流 从这个字符串中删除颜色。Alice 先手 。如果一个颜色片段为 'A' 且 相邻两个颜色 都是颜色 'A' ,那么 Alice 可以删除该颜色片段。Alice 不原创 2022-03-22 10:40:22 · 155 阅读 · 0 评论 -
653. 两数之和 IV - 输入 BST(bfs)
文章目录QuestionIdeasCodeQuestion653. 两数之和 IV - 输入 BST(bfs)Ideasbfs 用队列模拟 需要一个判重数组 (防止重复走)+ 拓展点CodeO(N)# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self原创 2022-03-21 16:25:48 · 318 阅读 · 0 评论 -
606. 根据二叉树创建字符串
文章目录QuestionIdeasCodeQuestion606. 根据二叉树创建字符串你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 "()" 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4] 1 / \ 2 3 / 4 输出: "1(2(4))(3)"解释: 原本将是“1(2(4)()原创 2022-03-19 10:05:24 · 132 阅读 · 12 评论 -
2043. 简易银行系统(数据结构)
文章目录QuestionIdeasCodeQuestion2043. 简易银行系统你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款)。银行共有 n 个账户,编号从 1 到 n 。每个账号的初始余额存储在一个下标从 0 开始的整数数组 balance 中,其中第 (i + 1) 个账户的初始余额是 balance[i] 。请你执行所有 有效的 交易。如果满足下面全部条件,则交易 有效 :指定的账户数量在 1 和 n 之间,且取款或者转账需要的钱的总数 小原创 2022-03-18 13:53:16 · 458 阅读 · 0 评论 -
720. 词典中最长的单词(模拟+排序)
文章目录QuestionIdeasCodeQuestion词典中最长的单词给出一个字符串数组 words 组成的一本英语词典。返回 words 中最长的一个单词,该单词是由 words 词典中其他单词逐步添加一个字母组成。若其中有多个可行的答案,则返回答案中字典序最小的单词。若无答案,则返回空字符串。 示例 1:输入:words = ["w","wo","wor","worl", "world"]输出:"world"解释: 单词"world"可由"w", "wo", "wor",原创 2022-03-17 10:30:22 · 432 阅读 · 6 评论 -
432. 全 O(1) 的数据结构(15/16)
文章目录QuestionIdeasCodeQuestion 全O(1) 的数据结构请你设计一个用于存储字符串计数的数据结构,并能够返回计数最小和最大的字符串。实现 AllOne 类:AllOne() 初始化数据结构的对象。inc(String key) 字符串 key 的计数增加 1 。如果数据结构中尚不存在 key ,那么插入计数为 1 的 key 。dec(String key) 字符串 key 的计数减少 1 。如果 key 的计数在减少后为 0 ,那么需要将这个 key 从数据结构原创 2022-03-16 10:20:44 · 105 阅读 · 2 评论 -
2044. 统计按位或能得到最大值的子集数目(dfs实现组合型枚举&或位运算)
文章目录QuestionIdeasCodeQuestion2044. 统计按位或能得到最大值的子集数目给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或 ,结果等于 a[0] OR a[1] OR ... OR a[a.lengt原创 2022-03-15 11:45:22 · 157 阅读 · 0 评论 -
剑指 Offer II 119. 最长连续序列
# O(N^2) 69/70用例超时了 感觉是常数太大class Solution: def longestConsecutive(self, nums: List[int]) -> int: nums = sorted(set(nums)) res = 0 cnt = 0 for i in range(len(nums)): for j in range(i,len(nums)): .原创 2022-03-14 23:25:36 · 598 阅读 · 3 评论 -
599. 两个列表的最小索引总和(数组)
class Solution: def findRestaurant(self, list1: List[str], list2: List[str]) -> List[str]: # 遍历两个列表,将相同值加起来,o(n^2) litt = 3000 res = [] for k1,v1 in enumerate(list1): for k2,v2 in enumerate(list2): .原创 2022-03-14 20:40:37 · 359 阅读 · 0 评论 -
29. 两数相除
麻了,先AC再说class Solution: def divide(self, dividend: int, divisor: int) -> int: if dividend == -2147483648 and divisor==-1: return 2147483647 return dividend // divisor if dividend // divisor >= 0 else math.ceil(div.原创 2022-03-12 11:13:32 · 103 阅读 · 0 评论 -
590. N 叉树的后序遍历
"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self.val = val self.children = children"""class Solution: def postorder(self, root: 'Node') -> List[int]: res = [] def dfs(.原创 2022-03-12 10:52:44 · 494 阅读 · 0 评论 -
21. 合并两个有序链表
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> .原创 2022-03-10 20:15:20 · 265 阅读 · 4 评论 -
144. 二叉树的前序遍历(放松AC)
# 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: def preorderTraversal(self, root: Optional[.原创 2022-03-10 16:02:00 · 264 阅读 · 0 评论
分享