- 博客(5)
- 收藏
- 关注
原创 算法day5 哈希表(Leetcode 242.有效的字母异位词,349. 两个数组的交集,202快乐数,1. 两数之和)
思路:利用哈希表,,而且这道题目中字符串只有小写字符,那么就可以定义一个数组,来记录字符串s里字符出现的次数。定义一个数组叫做record用来上记录字符串s里字符出现的次数。需要把字符映射到数组也就是哈希表的索引下标上,再遍历 字符串s的时候,这样就将字符串s中字符出现的次数,统计出来了。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。那么最后检查一下,
2025-04-16 22:49:29
930
原创 算法day4 链表(Leetcode24. 两两交换链表中的节点,Leetcode19.删除链表的倒数第N个节点,Leetcode160.链表相交,Leetcode142.环形链表II)
思路:使用虚拟头节点,利用双指针表示,如图: 代码: 时间复杂度:O(n) 空间复杂度:O(1) Leetcode19.删除链表的倒数第N个节点 思路:双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。代码: 时间复杂度: O(n) 空间复杂度: O(1) Leetcode160.链表相交 思路:简单来说,就是求两个链表交点节点的指针。 (指针相等而不是值相等)为了方便
2025-04-14 20:53:30
679
原创 算法day3 链表(Leetcode203.移除链表元素,Leercode206.反转链表,Leetcode707.设计链表)
删除链表的时候要从被删除链表的上一个链表连接到被删除链表的下一个链表,可以定义一个新的指针来代替被删除链表,最后删除节点,清理内存。
2025-04-14 20:20:49
555
原创 算法day2:数组( 209.长度最小的子数组, 59.螺旋矩阵II,58. 区间和)
这里一圈下来,我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。窗口的起始位置如何移动:如果当前窗口的值大于等于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。窗口就是 满足其和 ≥ s 的长度最小的 连续 子数组。
2025-04-10 23:07:17
407
原创 算法day1:数组(704.二分查找,27.移除元素,977.有序数组平方)
同时题目还强调,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件!二分查找一定要注意边界条件,区间的定义一般为两种,左闭右闭即[left, right],或者左闭右开即[left, right)。
2025-04-09 16:50:46
693
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅