leetcode题目
文章平均质量分 65
leetcode题目
yjg_
鲜衣怒马少年时,不负韶华行且知
展开
-
合并两个有序链表(leetcode)
每次递归都会比较当前两个节点的值,选择较小的节点作为合并后的链表的下一个节点,并继续递归合并剩余部分。(等于情况谁都可以,这里判给(list2))每次递归都会比较当前两个节点的值,选择较小的节点作为合并后的链表的下一个节点,并继续递归合并剩余部分。(等于情况谁都可以,这里判给(list2))原创 2023-08-05 15:50:46 · 291 阅读 · 0 评论 -
删除注释(力扣)
设置一个值来记录是否在,注释代码块里面,这里是c,初始值为false。设置一个存储有效字符的StringBuilder对象sb,将有效字符追加到这里面。然后分类讨论,字符是否是有效字符:原创 2023-08-03 23:00:51 · 413 阅读 · 0 评论 -
翻转卡片游戏(力扣)
如果存在两面都是一样的,说明这个数字是肯定不能被选择的,因为不管你怎么样去翻转这张,另一面都是一样的值,当其他牌拥有一样的值时候,也是不行的,因为存在那么一张两面相同的牌。比如:fronts = [1,2,4,4,7], backs = [1,3,4,1,3],数组中的1和4就都不能选择。原创 2023-08-02 21:30:07 · 649 阅读 · 0 评论 -
将数组和减半的最少操作次数(力扣)
因此用一个优先队列(大根堆)维护数组中的所有数,每次从优先队列中取出最大值,将其减半,然后将减半后的数重新放入优先队列中,同时更新减半和的值和temp,直到temp大于等于数组和sum的一半为止。每一次操作中,你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。每次操作,会将数组中的一个数减半。要求使得数组和,至少减少到一半的操作次数最少是多少,那么每次操作应该选择当前数组的最大值进行减半。将元素插入堆和删除堆顶元素的时间复杂度为O(logN),其中N是元素的数量。原创 2023-07-25 19:31:35 · 416 阅读 · 0 评论 -
2788. 按分隔符拆分字符串
我们遍历每一个字符串,通过substring截取一个字母然后来比较,我们需要维护两个指针,left和right初始为0,他们两个的中间就是一个一个拆分的答案,相等的时候我们更新指针right,并截取答案字符串,判断是否为空,不为则添加,然后把右指针的值赋值给left,继续遍历直到下一个分隔符。原创 2023-07-24 19:22:25 · 176 阅读 · 0 评论 -
经典面试题(力扣,接雨水)
我们需要维护一个到当前的前缀最大数组(当前元素的前缀最大的数字),和一个到当前的后缀最大数组(当前元素的后缀最大的数字)。原创 2023-07-23 22:30:17 · 424 阅读 · 0 评论 -
860. 柠檬水找零(力扣)
给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。·20美元,有两种找零方式:找零1张10美元+1张5美元;遍历结束,说明我们没有遇到无法找零的情况,返回true即可。·是5美元,直接收下;原创 2023-07-22 22:37:43 · 194 阅读 · 0 评论 -
918. 环形子数组的最大和(动态规划)
数组nums是一个环形数组,当最大子数组在内部时候,直接计算最大子数组和就行了,如果最大子数组在两端的时候,我们只需要转换计算最小子数组和就行了,因为:`两端的数组和+内部的数组和=总的数组和`我们只需要计算内部的最小子数组和,就可以让两端的子数组和达到最大子数组和,因为总的数组和是一个固定不变的数字。原创 2023-07-20 23:26:35 · 83 阅读 · 0 评论 -
字符串相加(力扣)
双指针方式原创 2023-07-17 18:45:59 · 576 阅读 · 0 评论 -
979. 在二叉树中分配硬币(力扣)
然后,返回当前节点也就是左右子树的父节点所形成的整个子树的硬币是多余的量还是不足的量,也就是加上左右子树的多余的量还是不足的量再加上当前节点硬币的数量减去减去自己一个节点数。那么返回给它的父节点也就是返回给值为1的节点,它左节点返回的是int[]{3,2},当遍历它右节点的时候,因为右节点是叶子节点且没有值,所以它所形成的子树总的硬币coins=0,节点node=1,返回数组为int[]{0,1},那么答案经过计算,值就为4。那么值为3的父节点,返回的数组是以它所形成子树的硬币数和节点数总值 ,原创 2023-07-14 19:06:55 · 423 阅读 · 0 评论 -
16. 最接近的三数之和(双指针+减去多余步骤)
当我们在遍历的时候,三数之和为,sum = nums[i]+ numsli]+ nums[k],判断sum是不是与target最近的数。使用双指针的方法我们要先对数组进行排序,使得它是有序的,在使用双指针时,更好的来控制哪一个指针移动。原创 2023-07-10 18:50:45 · 601 阅读 · 0 评论 -
167. 两数之和 II - 输入有序数组
定义两个指针i和j,分别指向第一个元素和最后一个元素。每次计numbers[i]+numbers[j],如果和等于目标值,那么返回[i+1,j+1]。如果和小于目标值,那么将i加1,如果和大于目标值,那么将j减1。原创 2023-07-08 12:10:45 · 298 阅读 · 0 评论 -
2178. 拆分成最多数目的正偶数之和
如果finalSum是奇数,那么无法拆分,直接返回空数组。若是偶数,我们按照2,4,6,…的顺序拆分finalSum,直到 finalSum无法拆分出不同的正偶数,此时我们将剩余的finalSum加到最后一个正偶数上,就可以得到我们的答案。原创 2023-07-06 10:55:29 · 72 阅读 · 0 评论 -
1253. 重构 2 行二进制矩阵(力扣)
遍历到的元素colsum[i],我们有以下几种情况:如果colsum[j]=2,那么我们将ans[0][j]和ans[1][j]都置为1。如果colsum[j]=0,那么我们将ans[0][i]和ans[1][j]都置为0。如果colsumli]= 1,先满足第一行为1,满足完后剩下的都是另一行的。之后需要判断, 计算每一行的总和,看是否满足条件与upper和lower相等。原创 2023-06-30 11:26:06 · 529 阅读 · 0 评论 -
力扣LCP 33. 蓄水
给定 N 个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。原创 2023-05-22 19:37:49 · 485 阅读 · 0 评论 -
2437. 有效时间的数目
方法一:暴力枚举直接枚举从00∶00到23∶59的所有时间,然后判断每个时间是否有效,满足要求则答案加一。原创 2023-05-09 23:14:24 · 731 阅读 · 0 评论 -
2404. 出现最频繁的偶数元素(leetcode)
我们可以通过merge函数来只存储偶数,如果相应的**偶数key存在**,则通过I**nteger::sum**起到一个旧值加新值(新值为1)**更新value值**。之后就是遍历map集合找到最频繁的偶数若有**次数相同**的**返回最小**的那个。原创 2023-04-14 09:53:16 · 494 阅读 · 0 评论 -
1041. 困于环中的机器人
用一个变量k表示机器人的方向,初始值为0,表示面向北方。变量k的取值范围为[0,3],分别表示机器人面向北、西、南、东。另外,用长度为4的数组dis记录机器人在四个方向上走的距离,初始值都为0。原创 2023-04-12 14:54:28 · 562 阅读 · 0 评论 -
1625. 执行操作后字典序最小的字符串(力扣)
1625. 执行操作后字典序最小的字符串(力扣)原创 2023-03-23 18:08:16 · 609 阅读 · 0 评论