双指针
c葱c
这个作者很懒,什么都没留下…
展开
-
leetcode 350. 两个数组的交集 II
【代码】leetcode 350. 两个数组的交集 II。原创 2023-05-16 10:00:36 · 129 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词 ( 滑动窗口
【代码】438. 找到字符串中所有字母异位词 ( 滑动窗口。原创 2023-05-15 10:39:35 · 132 阅读 · 0 评论 -
leetcode 376. 摆动序列
思路没想到就很难,,,,,,看了题解就觉得,还可以加个图吧,贪心这玩意。。我之前的困惑就在于:不知道如何判断 正负规律,发现我双指针的思想用错了。我一开始想用两个指针指向 数组的元素这里的两个指针指向的是差值。原创 2023-04-14 10:58:50 · 50 阅读 · 0 评论 -
leetcode 538.把二叉搜索树转换为累加树
双指针不一定是要有结点。有一个可以记录下之前一个的数值即可。在这里因为计算的是值,所以直接将 pre 定义为 int 类型就可以完成了。所以就用到 双指针的想法了。逐个遍历,并且加上之前遍历的总和。因为之前遍历的结点的值,一定比当前结点的值要大。累加树就是 当前结点 加上所有比它大的数值。不知道这个累加树是什么意思。原创 2023-04-06 09:59:50 · 66 阅读 · 0 评论 -
leetcode 530.二叉搜索树的最小绝对差
这里使用递归函数是主要是为了遍历,而不需要得到返回值。res已经在每次迭代中不断更新了。关于使用递归是否需要接住返回值。不断比较差值,并且更新res。夸夸 自己写对了一大半。原创 2023-04-04 10:12:52 · 44 阅读 · 0 评论 -
leetcode 501.二叉搜索树中的众数
day21值得一夸的是,思路想出一大半了思路:就是用双指针,不断比较 pre 和 当前结点的值是否相等。原创 2023-04-04 09:56:13 · 37 阅读 · 0 评论 -
leetcode 98.验证二叉搜索树
所以看见二叉搜索树首先可以考虑中序遍历,这样遍历的元素值是逐渐递增的。如果 pre->val >= root->val 返回 false。在这里,使用一个结点,保存之前的结点,可以和现在的结点进行比较。首先,根据二叉搜索树的性质,左子树的。都比 根结点的值小 右子树的。原创 2023-04-03 19:45:28 · 37 阅读 · 0 评论 -
leetcode 151.翻转字符串里的单词
1.先把空格去掉(双指针,类似《移除元素》。不过需要额外判断一下,手动插入空格的情况)2.将整个字符串反转。原创 2023-03-22 20:32:14 · 59 阅读 · 0 评论 -
剑指Offer 05.替换空格
1.扩容方法:resize 函数,意识是需要将数组的大小变为多大 s.resize()2.在 后面双指针移动的时候,如果 i 遇到了空格,j额外填充两个格子,所以在。问题:读题又不仔细。以为直接用 ' % ‘ 替代空格。1. 注意扩容的大小,增加的是两倍的空格数量。数组进行扩容修改的时候,先扩容,然后从后向前遍历。天哪,,,双指针真的好灵活。双指针还是得搞清楚两个指针究竟干嘛的。i 指向的是原数组的下标。j 指向的是新数组的下标。2.不用申请新的数组。原创 2023-03-22 11:51:52 · 63 阅读 · 0 评论 -
leetcode 18. 四数之和
2.在剪枝的时候,要用break 不能直接return res ,因为有两层for循环啊!1. 如果要剪枝,需要考虑 target 为负数的情况。3. 注意数相加可能会溢出,要转换为 long 类型。还行独立做出来了大部分,思路和 三数之和是类似的。如果剪枝不会剪,还不如不剪了。就是对四个指针去重的操作。原创 2023-03-21 16:59:19 · 21 阅读 · 0 评论 -
leetcode 15. 三数之和
一开始完全想不到双指针可以这样用。因为这里是求,三个数相加。两个指针怎样处理三个数?这里就是巧妙用了一个for循环,来代替一个指针,主要需要移动的是循环内的指针。这里是三个数组,我一开始想的思路没啥大问题。就是先算两个数的和,但注意,这里。,因为这是在同一个数组中进行操作的。这里的去重比较麻烦。呵呵,不过下次遇到我一定可以的。哈希法的思路是ok的。原创 2023-03-21 15:43:26 · 27 阅读 · 0 评论