摘要: 四数相加 这道题给四个数组,要求找到四个数组相加等于0的所有排列组合个数。 使用哈希表的解决方法,先遍历a,b数组,将a+b的和记录到hash表,并记录出现的次数,然后再遍历c+d,判断hash表中有没有出现0-(c+d),出现的话,count需要加上次数。 class Solution { pub 阅读全文
posted @ 2025-07-17 23:39 AAqqs 阅读(12) 评论(0) 推荐(0)
摘要: LRU缓存 LRU:是一种内存淘汰算法,内存大小是有限的,当容量不足时,需要淘汰一些元素,以便新元素可以添加进来。Least Recently Used,最近使用过的数据,是有用的数据,需要留下来。 算法的数据结构:capacity容量,LinkedHashMap,链表有顺序之分,可以区分最近插入和 阅读全文
posted @ 2025-07-15 23:18 AAqqs 阅读(4) 评论(0) 推荐(0)
摘要: 有效字母异位词 判断s是不是t的字母异位词,就是判断两个字符串中的不同字母的个数是否相等。最先想到的就是将两个字符串中的字符和字符出现的次数放入map中保存,然后比较两个map是否相等。 但是考虑到题目中只包含26个小写字母,所以可以使用数组来存,数组的索引是字母-'a',数组的值是字母出现次数 p 阅读全文
posted @ 2025-07-15 23:18 AAqqs 阅读(2) 评论(0) 推荐(0)
摘要: 两两交换链表中的元素 这个题要求两个一对交换,这个过程主要是:指针指向的变化,操作节点的边界问题 操作节点:这个节点应该要求是两个交换的节点的前一个节点,假设是0,那么改变的时候就是1->3,2->1,0->2这样的指针变化,既然是前一个节点,为了方便,依旧是设置虚拟头节点 边界条件:如果是奇数,c 阅读全文
posted @ 2025-07-14 15:28 AAqqs 阅读(9) 评论(0) 推荐(0)
摘要: 移除链表元素 移除链表元素操作其实就是:node.next = node.next.next,将当前元素的上一个元素指针指向当前元素的下一个元素,所以删除一个元素需要知道他的上一个元素。 方法一:因为需要知道上一个元素,所以头结点是一种特殊情况,需要单独处理;然后再处理剩余节点,遍历过程中指针始终指 阅读全文
posted @ 2025-07-12 20:35 AAqqs 阅读(83) 评论(0) 推荐(0)
摘要: 长度最小的子数组 这道题让找最短的满足大于等于target的数组长度,暴力思想就是,用两层for循环,i代表区间的左边界,j代表区间的右边界,然后判断最小的区间长度,返回。 暴力方法时间复杂度大,需要改善,遍历区间的问题,其实就是相当于双指针,i是左边的指针,j是右边的指针。滑动窗口其实和双指针的思 阅读全文
posted @ 2025-07-11 18:39 AAqqs 阅读(18) 评论(0) 推荐(0)
摘要: 二分查找 二分查找的区间:左闭右闭、左闭右开 循环不变量:在循环遍历的时候,这个区间一开始是什么样的开闭状态,后面就是什么样的开闭状态 实践: 如果是左闭右闭,while终止条件是left <= right,left=right有意义,right=nums.length-1,相当于右边界是可能包含t 阅读全文
posted @ 2025-07-10 19:46 AAqqs 阅读(13) 评论(0) 推荐(0)