- 博客(9)
- 收藏
- 关注
原创 代码随想录算法训练营第六天(LeetCode242.有效的字母异位词;LeetCode349.两个数组的交集;LeetCode202.快乐数;LeetCode1.两数之和)
我们使用哈希表就可以实现这种操作,如果我们使用 HashSet 方法,我们只需要将其中一个数组中的元素存入一个哈希表中,因为哈希表会自动帮我们去重,所以我们无需担心重复的问题,然后使用另一个数组的元素,判断元素是否出现在哈希表中,在哈希表中有独特的方法可以进行判断。因为本题只包含小写字母,所以我们可以直接使用数组充当哈希表,我们首先遍历字符串 s,将其的字母转换成数字,然后通过数组存储它是否出现过以及出现过几次,即每次遇到一个字母使用。,然后遍历字符串 t,使用与字符串 s相同的方式进行判断,判断过程为。
2024-11-13 19:27:42 597
原创 代码随想录算法训练营第四天(LeetCode24.两两交换链表中的节点;LeetCode10.删除链表的倒数第N个节点;LeetCode面试题02.07.链表相交;LeetCode142.环形链表Ⅱ)
说明从头节点走到环形链表的入口和从相遇节点走到环形链表的入口的距离时相等的,如果 n>1,则说明从头节点走到环形链表的入口和从相遇节点走到环形链表的入口+在环里走的圈数的距离时相等的,那么当我们找到 fast 和 slow 相遇的地方时,我们只需要设计两个指针,一个指针从头节点开始走,每次走一步,一个指针从相遇节点开始走,每次走一步,当这两个节点相遇时,所在的位置就是环形链表的入口节点。2、3 节点不互换,意思就是交换过的节点不参与后续的交换了),同时只能进行节点交换,不能进行值交换。
2024-11-12 11:26:50 504
原创 代码随想录算法训练营第三天(LeetCode203.移除链表元素;LeetCode707.设计链表;LeetCode206.反转链表)
在这道题目中其实就是给定我们一个链表,让我们将这个链表反转。我们可以采用双指针的做法来解决这个问题,一个 pre 指针指向 null,一个 cur 指针指向给定链表的头节点,一个 temp 指针指向 cur 指针的下一个指针(因为 cur 指针的下一步操作就是指向改为 pre,所以原先的下一个链表节点需要进行存储),cur 的指向改为 pre。这道题目主要考察的是移除一个链表当中的元素,我们可以先在给定的链表前面加一个虚拟头结点,这样我们对给定链表头结点的操作和给定链表其余结点的操作就会变得相同。
2024-11-11 16:56:43 575
原创 代码随想录算法训练营第二天(LeetCode209.长度最小的子数组;LeetCode59.螺旋矩阵Ⅱ;区间和;开发商购买土地)
当我们想要获得数组中一个子数组的和时,我们首先考虑到的就是暴力的做法,暴力的做法需要一重循环遍历子数组的所有元素然后再相加,如果我们需要 m 次查询子数组的和,那么我们的时间复杂度就是 O (mn)。这道题目主要考察的是数组中的模拟。,然后我们完成了这道题目的第一个条件,也就是实现了总和大于等于 target,然后需要我们实现第二个条件,也就是长度最小,关于长度最小,就需要我们使用慢指针来缩短窗口的大小,直到不满足第一个条件,我们再次移动快指针。然后,我们使用前缀和的思想使得划分出来的两个部分的差值最小。
2024-10-31 20:25:48 415
原创 代码随想录算法训练营第一天(LeetCode704.二分查找;LeetCode27.移除元素 ;LeetCode977.有序数组的平方)
题目链接: LeetCode704.二分查找题目链接二分查找的主要思路在于目标元素 target是在 [left,right][left, right][left,right] 还是 [left,right)[left,right)[left,right) 区间。左闭右闭区间下的代码:左闭右开区间下的代码:LeetCode 27. 移除元素题目链接: LeetCode27.移除元素题目链接暴力做法的代码:双指针做法的代码:LeetCode 977. 有序数组的平方LeetCode977.有序数组
2024-10-30 20:15:23 1166
原创 LeetCdoe209.长度最小的子数组(滑动窗口例题,后有练习题)
讲解滑动窗口的基本例题,帮助大家理解滑动窗口,同时附了一道练习题,包括练习题的讲解。
2024-10-10 20:34:51 753
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人