LeetCode
LeetCode
我的艺术就是派大星
随便写写,记录成长。
展开
-
Leetcode 196. 删除重复的电子邮箱
最内层查询通过min()函数与group by 查询出每一个人的最早邮件id ,最内层子查询使用as t的目的是为了吧最内层查询作为中间层查询的调教,属于临时查询,需要as t赋予名字t。中间层查询通过select 获取最内层子查询的查询数据(因为最内层子查询只是过滤展示了目的数据,并不是真正的筛选后的数据)最外层查询通过not in属性直接删除。原创 2023-02-08 16:18:46 · 128 阅读 · 0 评论 -
Leetcode 1233. 删除子文件夹
小技巧:如果后一个是前一个的子文件夹的话,必然后一个字符串的前缀后面是/符号,所以直接让前一个字符串后面拼接一个/符号,然后直接匹配就行。首先对folder数组进行排序,然后让前一个肯定不是的与后一个可能是的比较,直接使用String.startof()方法判断是不是开头,原创 2023-02-08 11:41:31 · 137 阅读 · 0 评论 -
Leetcode 2331. 计算布尔二叉树的值
我的原思路是后序遍历,存放进数组中,三个一组倒叙便利数组,每次取后两个组,计算后取这两个组前一个数字进行计算,后来发现行不通,逻辑太复杂。然后看了题解大佬的递归思想,我觉得我的思想是一坨屎!看了题解,搞懂了巧妙的递归思路。原创 2023-02-07 19:40:45 · 130 阅读 · 0 评论 -
Leetcode 1798. 你能构造出连续值的最大数目
假设已知条件是已经是[0,M]了,下一个数字是X,则必然需要在所有已知条件尝试过的组合里加上X这个数字,那么加上后的区间范围是 [0+x,M+X],因为要求有序,则必然 0+X原创 2023-02-04 16:18:11 · 105 阅读 · 0 评论 -
Leetcode 112. 路径总和
构造循环体,每次判断是不是叶子,不是的递归,每次传递的参数是 下一个可能是叶子的节点,目标数4,现有路径数。判断是叶子后,直接返回true,否则返回false;原创 2023-02-01 19:12:17 · 76 阅读 · 0 评论 -
LeetCode 104. 二叉树的最大深度
每次都对非空节点判断,主节点是多少,左右个是多少,然后比较即可。官方递归,就是好用。原创 2023-02-01 17:30:21 · 91 阅读 · 0 评论 -
Leetcode 1669. 合并两个链表
先找list1的ab两位置断点,分别记录。然后a右面与b左面是list2即可。原创 2023-01-30 11:20:45 · 67 阅读 · 0 评论 -
Leetcode 36. 有效的数独
【代码】Leetcode 36. 有效的数独。原创 2023-01-26 16:24:07 · 75 阅读 · 0 评论 -
Leetcode 53. 最大子数组和
核心在于,遍历数组,每次都计算以这个数字结尾的最大值。原创 2023-01-26 15:47:45 · 153 阅读 · 0 评论 -
Leetcode 19. 删除链表的倒数第 N 个结点
双指针,右指针使劲往右,左指针间隔右指针N长度往右。最后判断左右指针距离决定删除左指针还是左指针右面的数据。原创 2023-01-26 11:09:11 · 67 阅读 · 0 评论 -
Leetcode 121. 买卖股票的最佳时机
构建一个一维数组,倒叙便利price数组,分别记录每一天可以卖出的最大值。具体判断时候仅需让这一天卖出价格与后一天的最大值比较即可。原创 2023-01-23 20:52:33 · 69 阅读 · 0 评论 -
Leetcode 2541. 使数组中所有元素相等的最小操作数 II
选择两个下标 i 和 j ,将 nums1[i] 增加 k ,将 nums1[j] 减少 k。换言之,nums1[i] = nums1[i] + k 且 nums1[j] = nums1[j] - k。给你两个整数数组 nums1 和 nums2 ,两个数组长度都是 n ,再给你一个整数 k。如果对于所有满足 0原创 2023-01-23 17:42:20 · 173 阅读 · 0 评论 -
Leetcode 2540. 最小公共值
Leetcode 2540. 最小公共值原创 2023-01-23 16:18:29 · 72 阅读 · 0 评论 -
Leetcode 2546. 执行逐位运算使字符串相等
Leetcode 2546. 执行逐位运算使字符串相等 脑筋急转弯原创 2023-01-22 22:22:28 · 106 阅读 · 0 评论 -
Leetcode 1817. 查找用户活跃分钟数
首先获取每个用户操作集合。计算每个用户操作次数,然后直接转换数组输出。原创 2023-01-20 13:28:52 · 144 阅读 · 0 评论 -
Leetcode 2299. 强密码检验器 II
2299. 强密码检验器 II原创 2023-01-19 20:30:26 · 76 阅读 · 0 评论 -
LeetCode 670. 最大交换
链接:https://leetcode.cn/problems/maximum-swap。给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。然后交换组合成数字,判断是不是最大,来源:力扣(LeetCode)原创 2022-09-14 08:31:06 · 125 阅读 · 0 评论 -
LeetCode 667. 优美的排列 II
给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件:假设该列表是 answer = [a1, a2, a3, … , an] ,那么列表 [|a1 - a2|, |a2 - a3|, |a3 - a4|, … , |an-1 - an|] 中应该有且仅有 k 个不同整数。返回列表 answer。如果存在多种答案,只需返回其中 任意一种。来源:力扣(LeetCode)原创 2022-09-08 15:38:56 · 186 阅读 · 0 评论 -
LeetCode 1592. 重新排列单词间的空格
给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词。请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。返回 重新排列空格后的字符串。来源:力扣(LeetCode)原创 2022-09-07 11:28:45 · 73 阅读 · 0 评论 -
LeetCode 735. 行星碰撞
给定一个整数数组 asteroids,表示在同一行的行星。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。...原创 2022-07-13 15:38:46 · 127 阅读 · 0 评论 -
LeetCode 462. 最少移动次数使数组元素相等 II
文章目录题目题解中位数 无优化中位数 优化题目给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。示例 1:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2]示例 2:输入:nums = [1,10,2,9]输出:16提示:n == nums.leng原创 2022-05-19 09:36:13 · 455 阅读 · 0 评论 -
LeetCode 462. 合并区间
文章目录题目:便利数组并合并题目:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:in原创 2022-05-19 09:30:34 · 383 阅读 · 0 评论 -
LeetCode 55. 跳跃游戏
文章目录动态规划(无优化)思路代码贪心(优化)思路代码给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标原创 2022-05-13 10:23:32 · 425 阅读 · 0 评论 -
LeetCode 62. 不同路径
Java新手小白版 动态规划原创 2022-05-13 09:41:58 · 290 阅读 · 0 评论 -
LeetCode 面试题 01.05. 一次编辑
不难,就是得细心原创 2022-05-13 09:15:51 · 209 阅读 · 1 评论 -
LeetCode 897. 递增顺序搜索树
文章目录题目中序遍历模拟题目给你一棵二叉搜索树的 root ,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/increasing-order-search-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。中序遍历模拟class Solution { public Tree原创 2022-05-12 17:37:11 · 261 阅读 · 0 评论 -
LeetCode 1700. 无法吃午餐的学生数量
异侠的目录模拟 | 队列数学分析解析:学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮:如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。否则,这名学生会 放弃这个三明治 并回到队列的尾部。这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。给你两个整数数组 students 和 sandwiches ,其中 sa原创 2022-05-12 17:19:17 · 568 阅读 · 0 评论 -
LeetCode 二叉树的 前序遍历 & 中序遍历 & 后序遍历
文章目录递归给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 10原创 2022-05-12 15:49:05 · 381 阅读 · 0 评论 -
剑指 Offer 57 - II. 和为s的连续正数序列
文章目录题目滑动窗口题目输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]限制:1 <= target <= 10^5来源:力扣(LeetCode)链接:https://leetcode.原创 2022-05-10 17:10:44 · 173 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题(记忆数组 | 记忆动态优化)
文章目录记忆数组记忆动态优化一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100来源:力扣(LeetCode)链接:https://leetcode.cn/problems/原创 2022-05-10 10:46:36 · 284 阅读 · 0 评论 -
剑指 Offer II 012. 左右两边子数组的和相等
文章目录题目遍历题目给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/tvdfij著作权归领原创 2022-05-10 10:19:04 · 230 阅读 · 0 评论 -
LeetCode 942. 增减字符串匹配
LeetCode 942. 增减字符串匹配原创 2022-05-09 10:22:47 · 261 阅读 · 0 评论 -
LeetCode 933. 最近的请求次数 || 剑指 Offer II 042. 最近请求次数
文章目录题目题解1. 官方队列队列小知识题目写一个 RecentCounter 类来计算特定时间范围内最近的请求。请实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示例:原创 2022-05-06 09:11:35 · 265 阅读 · 0 评论 -
LeetCode 713. 乘积小于 K 的子数组
文章目录题目题解1. 双指针(右指针从零遍历,左指针从右指针位置想做遍历)题目给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。示例 1:输入:nums = [10,5,2,6], k = 100输出:8解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。示例 2:输入:nums原创 2022-05-05 15:52:03 · 537 阅读 · 0 评论 -
LeetCode 1823. 找出游戏的获胜者
文章目录题目方法我的三层嵌套模拟三叶大神的两层循环模拟三叶大神的约瑟夫环(强烈推荐)题目共有 n 名小伙伴一起做游戏。小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号。确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i < n ,从第 n 名小伙伴顺时针移动一位会回到第 1 名小伙伴的位置。游戏遵循如下规则:从第 1 名小伙伴所在位置 开始 。沿着顺时针方向数 k 名小伙伴,计数时需要 包含 起始时的那位小伙伴。逐个绕圈进行计数,原创 2022-05-05 11:36:29 · 207 阅读 · 0 评论 -
LeetCode 905. 按奇偶排序数组
文章目录题目解法双指针左右夹逼题目给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。返回满足此条件的 任一数组 作为答案。示例 1:输入:nums = [3,1,2,4]输出:[2,4,3,1]解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2:输入:nums = [0]输出:[0]解法双指针左右夹逼 int l=0,r=nums.length-1;原创 2022-05-05 10:03:53 · 881 阅读 · 0 评论 -
LeetCode 908. 最小差值 I
文章目录给你一个整数数组 nums,和一个整数 k 。在一个操作中,您可以选择 0 <= i < nums.length 的任何索引 i 。将 nums[i] 改为 nums[i] + x ,其中 x 是一个范围为 [-k, k] 的整数。对于每个索引 i ,最多 只能 应用 一次 此操作。nums 的 分数 是 nums 中最大和最小元素的差值。在对 nums 中的每个索引最多应用一次上述操作后,返回 nums 的最低 分数 。示例 1:输入:nums = [1], k = 0原创 2022-04-30 20:11:07 · 373 阅读 · 0 评论 -
LeetCode 448. 找到所有数组中消失的数字(简单但又恶心的题)
文章目录题目简单模拟题目给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例2:输入:nums = [1,1]输出:[2]提示:n == nums.length1 <= n <= 1051 <= nums[i] <= n来源:力扣(L原创 2022-04-29 15:21:35 · 265 阅读 · 0 评论 -
Leetcode(算法) 905. 按奇偶排序数组
文章目录简简单单双指针新建数组,从头遍历旧数组偶数放子女数组头奇数放新数组尾给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。返回满足此条件的 任一数组 作为答案。示例 1:输入:nums = [3,1,2,4]输出:[2,4,3,1]解释:[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。示例 2:输入:nums = [0]输出:[0]提示:1 <= nums.length <= 500原创 2022-04-28 09:56:01 · 492 阅读 · 0 评论 -
Leetcode : 1351. 统计有序矩阵中的负数
文章目录遍历+边界判断给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 请你统计并返回 grid 中 负数 的数目。示例 1:输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出:8解释:矩阵中共有 8 个负数。示例 2:输入:grid = [[3,2],[1,0]]输出:0提示:m == grid.lengthn == grid[i].length1 <=原创 2022-04-27 10:34:17 · 160 阅读 · 0 评论