
刷题
文章平均质量分 50
Kitsuha
提升自我中
展开
-
【更新中】Leetcode中遇到的最短路径算法
因为本题的节点是从1到n,所以最后把dis数组中的第一个忽略掉(dis[1:])然后就是经典的dijkstra最短路径算法,套用模板即可。原创 2024-03-26 10:57:58 · 575 阅读 · 1 评论 -
【更新中】记录一下最近遇到的几个二叉树的题型(附好用的遍历模板)
【代码】记录一下最近遇到的几个二叉树的题型(附好用的遍历模板)原创 2024-02-15 18:13:13 · 341 阅读 · 0 评论 -
LeetCode 热题 100——42. 接雨水
上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。个非负整数表示每个宽度为。原创 2024-01-03 23:32:06 · 552 阅读 · 0 评论 -
LeetCode 热题 100——283. 移动零
考虑使用双指针法,将非零元素向前移动,移动完成之后0元素均在数组末端。这样的算法具有线性时间复杂度 O(n)。因此,给定的算法在最坏情况下具有二次时间复杂度。对于包含大量元素的数组,这可能导致性能问题。时间复杂度为:O(n+(n−1)+(n−2)+…+1)=O(n^2)移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。用冒泡的思想,将前方的0慢慢向后移动,你能尽量减少完成的操作次数吗?,编写一个函数将所有。原创 2024-01-01 17:49:23 · 607 阅读 · 0 评论 -
LeetCode 热题 100——1.两数之和
构建映射关系,很简单,这里只需要注意一点,再for循环中,先判断target-nums[i]是否在字典中,再创建映射,因为题里有要求:数组中同一个元素在答案里不能重复出现。如果没有这个要求,那么就可以先创建映射。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。整数,并返回它们的数组下标。你可以想出一个时间复杂度小于。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2023-12-26 16:02:30 · 501 阅读 · 0 评论 -
LeetCode 热题 100——49. 字母异位词分组
因为每个字母异位词排序后一定相同,所以可以把字母异位词排序后的结果作为哈希表的key,此处需要注意在使用哈希表对字符串进行分组时,哈希表的键应该是不可变的。Python 中的字符串是不可变的类型,因此可以作为哈希表的键。要将可变类型转换为不可变类型,一种常见的方法是将其转换为元组(tuple)。返回的是一个列表(可变类型),因此不能直接作为哈希表的键。作为键,可以将其转换为元组,然后再作为哈希表的键。将这个排序后的字符列表连接成一个新的字符串 作为键。是由重新排列源单词的所有字母得到的一个新单词。原创 2023-12-27 23:58:25 · 452 阅读 · 0 评论 -
【Leetcode】907. 子数组的最小值之和
最小值为 3,1,2,4,1,1,2,1,1,1,和为 17。的每个(连续)子数组。由于答案可能很大,因此。原创 2023-11-27 23:23:52 · 187 阅读 · 0 评论 -
Leetcode 【2342. 数位和相等数对的最大和】
(0, 2) ,两个数字的数位和都是 9 ,相加得到 18 + 36 = 54。- (1, 4) ,两个数字的数位和都是 7 ,相加得到 43 + 7 = 50。不存在满足条件的数对,返回 -1。所以可以获得的最大和是 54。这段代码的时间复杂度是O(n)请你找出所有满足条件的下标。原创 2023-11-18 11:34:50 · 311 阅读 · 0 评论 -
Leetcode 【765. 情侣牵手】
合并操作,首先找到两个元素所在集合的根节点,然后根据秩的大小判断如何合并。如果两个根节点的秩相等,就将其中一个根节点连接到另一个根节点上,并更新秩。如果秩不相等,将秩小的根节点连接到秩大的根节点上,不需要更新秩。查找操作,通过递归找到元素的根节点,同时进行路径压缩。最少交换座位的次数,以便每对情侣可以并肩坐在一起。无需交换座位,所有的情侣都已经可以手牵手了。交换可选择任意两人,让他们站起来交换座位。个座位上,想要牵到对方的手。数组表示每个元素的父节点,,以此类推,最后一对是。数组表示每个集合的秩。原创 2023-11-11 19:41:07 · 155 阅读 · 0 评论 -
Leetcode 【1334. 阈值距离内邻居最少的城市】
然后,对于每个城市,统计满足条件的邻居城市数目,并选择满足条件城市数目最少的城市。城市 0 和 3 在阈值距离 4 以内都有 2 个邻居城市,但是我们必须返回城市 3,因为它的编号最大。城市 1 -> [城市 0, 城市 2, 城市 3]城市 2 -> [城市 0, 城市 1, 城市 3]城市 4 -> [城市 1, 城市 2, 城市 3]城市 0 -> [城市 1, 城市 2]城市 3 -> [城市 1, 城市 2]城市 2 -> [城市 3, 城市 4]城市 3 -> [城市 2, 城市 4]原创 2023-11-14 12:47:27 · 201 阅读 · 0 评论 -
Leetcode 【1155. 掷骰子等于目标和的方法数】
得到 7 的和有 6 种方法:1+6 2+5 3+4 4+3 5+2 6+1。中心思想还是dp的那个递归方程,方法二用了缓存来避免重复计算。种方式中)滚动骰子的数量,使正面朝上的数字之和等于。返回的结果必须是对 109 + 7 取模。你扔两个骰子,每个骰子有 6 个面。个一样的骰子,每个骰子上都有。你扔一个有 6 个面的骰子。得到 3 的和只有一种方法。,返回可能的方式(从总共。答案可能很大,你需要对。原创 2023-10-24 11:06:32 · 242 阅读 · 1 评论 -
Leetcode 【373. 查找和最小的 K 对数字】
也可能序列中所有的数对都被返回:[1,3],[2,3],其中第一个元素来自。原创 2023-10-23 13:13:49 · 157 阅读 · 0 评论 -
Leetcode 【477. 汉明距离总和】
这是因为在这个比特位上,count_ones个数的1与count_zeros个数的0可以组成count_ones * count_zeros个不同的数对,每对数对对应一个汉明距离为1的位。因此,该比特位上的总汉明距离就是count_ones乘以count_zeros。在汉明距离的计算中,对于一个特定的比特位,假设有count_ones个数的该比特位是1,有count_zeros个数的该比特位是0。在二进制表示中,4 表示为 0100 ,14 表示为 1110 ,2表示为 0010。原创 2023-10-17 17:13:55 · 178 阅读 · 0 评论 -
Leetcode 【260. 只出现一次的数字 III】
最右边的 1 所在的位(也就是最低位的 1),这种技巧常用于获取二进制数中最右边的 1 的位置。,其中恰好有两个元素只出现一次,其余所有元素均出现两次。找出只出现一次的那两个元素。你必须设计并实现线性时间复杂度的算法且仅使用常量额外空间来解决此问题。今天的每日一题比较有意思,而且也学到了新东西,所以记录一下。中最右边的 1 所在的位置,以便区分两个子数组。[5, 3] 也是有效的答案。原创 2023-10-16 11:48:44 · 157 阅读 · 0 评论 -
Leetcode 【136. 只出现一次的数字】
由于数组中只有一个元素出现一次,剩余元素均出现两次,所以选择异或运算,初始化res=0,出现两次相同的元素进行异或运算会使得res结果仍为0,而出现一次的那个元素会使得res结果等于那个出现一次的元素,返回res即可。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。原创 2023-10-14 11:35:35 · 177 阅读 · 0 评论 -
Leetcode 【1488. 避免洪水泛滥】
同时, [-1,-1,1,2,-1,-1] 也是另一个可行的没有洪水的方案。请注意,如果你选择抽干一个装满水的湖泊,它会变成一个空的湖泊。但第三天后,湖泊 1 和 2 都会再次下雨,所以不管我们第三天抽干哪个湖泊的水,另一个湖泊都会发生洪水。第二天后,装满水的湖泊包括 [1,2]。你的国家有无数个湖泊,所有湖泊一开始都是空的。用于找到可以抽水的湖泊的位置,以确保不会发生洪水。第四天后,装满水的湖泊包括 [1,2,3,4]第三天后,装满水的湖泊包括 [1,2,3]第六天后,装满水的湖泊包括 [1,2]。原创 2023-10-13 15:38:01 · 169 阅读 · 0 评论 -
刷题心得 【2731. 移动机器人】
例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 2 并往左移动,下一秒,它们都将占据位置 1,并改变方向。例如,如果一个机器人位于位置 0 并往右移动,另一个机器人位于位置 1 并往左移动,下一秒,第一个机器人位于位置 0 并往左行驶,而另一个机器人位于位置 1 并往右移动。1 秒后,机器人的位置为 [-1,-1,1]。现在下标为 1 的机器人开始往左移动,下标为 2 的机器人开始往右移动。下标为 1 和 2 的机器人之间的距离为 abs(-1 - 1) = 2。原创 2023-10-10 23:25:15 · 102 阅读 · 0 评论 -
leetcode刷题心得 【605. 种花问题】
注:i为什么会赋值为-1,当flowerbed=[0,0,1,0,1],n=1的时候,由于在数组前后各加了一个0,所以数组变为[0,0,0,1,0,1,0],此时就有1个连续的三个零。假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。,能否在不打破种植规则的情况下种入。原创 2023-10-10 23:18:40 · 104 阅读 · 0 评论 -
【leetcode】40. 组合总和 II
给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]示例2:...原创 2020-09-10 00:43:38 · 178 阅读 · 0 评论