- 博客(10)
- 收藏
- 关注
原创 代码随想录第五天 | LeetCode1.两数之和 + LeetCode202 快乐数 + LeetCode242.有效的字母异位词 + LeetCode349.两个数组的交集
大家可能看到这是LeetCode1,可能觉得很简单,但是如果你没有了解过哈希这种结构,第一个题其实并不简单。那么本题我们就使用到 Map 的实现哈希表的方式去实现。首先哈希表一般有三种实现方式,分别是 Java中的。本题则利用了 set 实现哈希表。本题的关键还是利用哈希表的特性,本题利用数组实现哈希表。
2024-01-15 09:51:36
453
1
原创 代码随想录四天 | LeetCode19.删除链表的倒数第n个节点 + LeetCode24_两两交换链表中的节点+LeetCode142 环形链表|| + LeetCode面试题 0207_链表相交
如果要删除倒数第n个结点,让 fast 指针先移动 n 步,然后再让 slow 指针移动,这样在 fast 指针到达链表的尾部时候,就可以删除slow所指向的结点了。比如:我们在链表中删除删除节点,我们需要知道他的前驱结点,然后才能完成删除。所以在这里我们让 fast 先移动 n + 1 步,这样 slow 就指向了 要删除节点的前一个节点,方便我们操作。本题思路还是很简单的,我们需要只需要让两个链表的长度一致,然后一个一个的比较指针是否相等即可。本题求的是两个链表交点节点的指针,要注意:我们要的是。
2024-01-14 16:02:05
357
1
原创 代码随想录第三天 | 203.移除链表元素 + 707 设计链表 + 206 反转链表
我们需要找到他的前驱结点,并且我们这里还需要保存他前驱的节点的下一个节点。然后我们再将我们要添加的节点加入到前驱结点的后面,再将我们新添加的结点的next指向我们保存的结点即可。point 既然是旧链表的头结点,所以 point = head,pre 是指向新链表的头结点,而反转还没有开始,所以 pre = null。也要保存我们要删除节点的下一个节点的下一个节点,然后我让前驱结点指向我们保存的结点,即完成了删除操作。需要注意的是,我们要避免空指针的异常,所以我们要对指针进行非空的判断。
2024-01-12 10:25:42
479
1
原创 代码随想录第二天 | 977 有序数组的平方 + 209 长度最小的子数组 + 59 螺旋矩阵II
这里我们定义两个指针,一个指针叫 left ,一个指针叫 right。left :指向数组的第一个元素right:指向数组的最后一个元素确定了两个指针,我们使两个指针一个从前,一个从后,逐渐的靠近,直到等于为止。这样就遍历了数组中所有的元素。然后我们在遍历中找出。
2024-01-11 10:03:42
348
1
原创 代码随想录第一天 -- 704 二分查找法 ,27 移除元素
遇到这道题可以套公式:如果你是左闭右闭,就可以是 while(left <= right),边界值已经被处理了,就不要再判断了,mid - 1,或者 mid + 1。如果你是左闭右开,就可以是 while(left < right),边界值没有被处理,就需要判断,mid 而不是 mid -1 啦。
2024-01-10 08:56:36
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人