
LeetCode刷题
文章平均质量分 97
爱喝兽奶的荒天帝
优快云全栈领域新星创作者,阿里云专家博主。书山有路勤为径,学海无涯苦作舟。自律遇见更好的自己!!!
展开
-
【LeetCode刷题】:双指针篇(三数之和,四数之和)
我们可以将所有符合要求的三元组给枚举出来,然后直接利用set容器去重,但是在示例中可能会有很多种像示例一中的这种情况,所以我们可以先给数组排个序,另外,排完序后我们得到的三元组里面的元素顺序也会得到固定,这样也能够更好的让我们利用容器去重。我们可以将所有符合要求的四元组给枚举出来,然后直接利用set容器去重,但是在示例中可能会有很多种像示例一中的这种情况,所以我们可以先给数组排个序,另外,排完序后我们得到的四元组里面的元素顺序也会得到固定,这样也能够更好的让我们利用容器去重。原创 2025-01-21 18:13:29 · 1106 阅读 · 5 评论 -
【leetcode刷题】:双指针篇(有效三角形的个数、和为s的两个数)
如果sum大于我们的目标值target,由于数组是单调递增的,price[left]已经是最小的值了,price[right]是数组中最大的那个数。在暴力枚举的时候我们忽略了一个很重要的因素,那就是这个数组里的元素是单调递增的,只要是单调递增的数组,我们就可以大胆的利用双指针算法来解决问题。根据单调性,假设是情况一,因为left往右的数都是比left大的数,left加上right已经大于最大的数了,那么一个。的数组,然后找到两个数相加等于目标值,然后返回这两个数,返回的这两个数顺序随意。原创 2025-01-09 15:42:16 · 1137 阅读 · 1 评论 -
【leetcode刷题】:双指针篇(快乐数、盛最多水的容器)
这两种情况可以抽象成一种情况,即一直重复变换过程,如果是第一种情况,那么最后循环成一个环,环理的每个值都是1,而第二种情况也是会一直循环直到形成一个环,只不过环里的每一个数都不是1。,当由于第一次slow和fast都指向第一个数,循环根本就进不去,所以我们定义fast是可以是第一个数变换后的数,也就是指向slow的后一位,然后继续循环即可。的定义,对于一个整数,每一次将这个数替换为每个位置上(该数的每一位)数字的平方和,然后一直重复这个过程,直到这个数变为1,如果最后的。原创 2024-10-27 18:59:04 · 1164 阅读 · 5 评论 -
【LeetCode刷题】:双指针篇(移动零、复写零)
大致题意就是将数组中所有为0的元素往后移,移到数组的末尾,但是所有的非零元素的顺序不能发生改变。所以只要cur遍历完数组后,就说明待处理的区间已经结束,而dest已经将数组划分为两个部分,一部分是非零元素,另一个区间的元素全是零,及完成题目要求。因为要复写的最后一个数是0,所以只要数组越界,就只要将n - 1位置的数据修改成0(n为数组大小),然后cur减一,dest减二即可。对于这道题,就是将数组划分成两个区间,左边为非零元素,右边为零的元素。都加一,当cur指向的值为零时,将零拷贝给新数组,然后。原创 2024-10-08 19:00:00 · 1135 阅读 · 4 评论