
力扣题解
文章平均质量分 69
主要以力扣刷题为主
Echo-Nie
这里是我本科期间的笔记本,记录学习和成长
展开
-
【算法训练】day1数组二分查找
题目:34在排序数组中查找元素的第一个和最后一个位置。原创 2024-09-01 11:02:51 · 770 阅读 · 0 评论 -
【算法训练】day2移除元素&有序数组平方
3 若当前字符不是 #,且 skip 为 0,则代表当前字符不会被消除,我们可以用来和 字符串2中的当前字符作比较。2 若当前字符不是 #,且 skip 不为 0,则 skipS 自减 1;若对比过程出现字符不匹配的情况,则返回 false,若均匹配,则true。1 若当前字符是 #,则 skip 自增 1;双指针 i, j 分别指向 末位字符。用skip1、skip2存放‘#’(图片摘自力扣题解大佬Max)原创 2024-09-01 23:53:55 · 261 阅读 · 0 评论 -
【算法训练】day3长度最小子数组
你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。子数组 [4,3]是该条件下的长度最小的子数组。可以采摘 [1,2,1,1,2] 这五棵树。可以采摘 [2,3,2,2] 这四棵树。可以采摘 [1,2,2] 这三棵树。如果不存在符合条件的子数组,返回。个正整数的数组和一个正整数。,返回你可以收集的水果的。可以采摘全部 3 棵树。的长度最小的 子数组。原创 2024-09-05 09:21:19 · 828 阅读 · 0 评论 -
【算法训练】day4螺旋矩阵
给你一个正整数n,生成一个包含1到n2所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。原创 2024-09-05 10:00:06 · 402 阅读 · 0 评论 -
【算法训练】day5数组简单前缀和
给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间下标:a,b (b > = a),直至文件结束。输出每个指定区间内元素的总和。原创 2024-09-12 01:45:00 · 244 阅读 · 0 评论 -
【算法训练】day6前缀和的简单场景(数组总结)
然而,由于城市规划的限制,只允许将区域按横向或纵向划分成两个子区域,而且每个子区域都必须包含一个或多个区块。为了确保公平竞争,你需要找到一种分配方式,使得 A 公司和 B 公司各自的子区域内的土地总价值之差最小。在一个城市区域内,被划分成了n * m个连续的区块,每个区块都拥有不同的权值,代表着其土地价值。目前,有两家开发公司,A 公司和 B 公司,希望购买这个城市区域的土地。现在,需要将这个城市区域的所有区块分配给 A 公司和 B 公司。请输出一个整数,代表两个子区域内土地总价值之间的最小差距。原创 2024-09-12 02:00:00 · 391 阅读 · 0 评论 -
【算法训练】day7链表
首先判断head不为空,再判断head为1,移除。head指向null,再进行循环,null.next无法访问,报错。// 链表变为 1->2->3。// 现在,链表变为 1->3。而链表相反,其增删只需要改变节点的pre和next即可,时间为O(1),但是查询时间为O(n)判断head为1,移除,head指向null,head为null,返回null。数组在增删上较为麻烦,删除/插入的时间复杂度为O(n),但是查询是O(1)如果一个链表为:[1->null],移除元素1.是指向下一个节点的指针/引用。原创 2024-09-16 04:00:00 · 1202 阅读 · 0 评论 -
【算法训练】day8 链表反转
给你单链表的头节点head,请你反转链表,并返回反转后的链表。[2,1]head = [][]链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?原创 2024-09-16 04:30:00 · 285 阅读 · 0 评论 -
【算法训练】day9交换两两相邻节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2024-09-16 05:00:00 · 242 阅读 · 0 评论 -
【算法训练】day10倒数第n个结点
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。[1,2,3,5][][1]你能尝试使用一趟扫描实现吗?原创 2024-09-16 07:00:00 · 177 阅读 · 0 评论 -
【算法训练】day11链表相交&环形链表
给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交题目数据整个链式结构中不存在环。,函数返回结果后,链表必须。相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点。原创 2024-09-17 04:00:00 · 1027 阅读 · 0 评论 -
【算法训练】day19四数之和
对a进行去重:针对已经遍历过的a去重,nums[a] == nums[a-1],不能是nums[a+1],因为nums[a+1]可能是b。请你找出并返回满足下述全部条件且。原创 2024-09-20 09:01:16 · 448 阅读 · 0 评论 -
【算法训练】day13哈希Map、Set、Bucket
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。原创 2024-09-17 21:33:14 · 179 阅读 · 0 评论 -
【算法训练】day14字母异位词
由于字符串只包含小写字母,因此我们可以维护一个长度为 26 的频次数组 ret,先遍历记录字符串 s 中字符出现的频次,然后遍历字符串 t,减去 ret中对应的频次。进阶题的思路类似,只是不限制字符数量了。那我们的长度将由s,t来决定,而不是26个字母。如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?t 是 s 的异位词,等于说:t和s中字符出现的种类和次数相等。如果 ret[i]=0,则说明符合条件。,编写一个函数来判断。原创 2024-09-18 11:21:06 · 184 阅读 · 0 评论 -
【算法训练】day15数组交集(是否去重)
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。由于题目中限制了数组长度,所以提前开好长度可以节省时间,再用数组模拟来节省空间,如果用哈希的话就是用空间换时间。常规题,遍历nums1,存入哈希中,再看看nums2中的在哈希中是否存在,若存在则放入结果ret中。空间换时间,已知数组长度最大为1000,所以开1001长度的数组。和前面那题的区别就是,这个题要考虑重复数字问题。原创 2024-09-18 17:32:30 · 824 阅读 · 0 评论 -
【算法训练】day16快乐数
编写一个算法来判断一个数n是不是快乐数。如果n是快乐数就返回true;不是,则返回false。原创 2024-09-19 01:00:00 · 365 阅读 · 0 评论 -
【算法训练】day17两个异位词题-中等
由于字符串中的字符顺序不同但是字符数相同,可以使用排序来将它作为key。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。的子串,返回这些子串的起始索引。指由相同字母重排列形成的字符串(包括相同的字符串)。原创 2024-09-19 02:00:00 · 287 阅读 · 0 评论 -
【算法训练】day18 两数之和&三数之和
但是好像也可以把left当成类似a的做法来考虑,left与过去的left作比较,然后后移。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。整数,并返回它们的数组下标。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-09-20 01:00:00 · 516 阅读 · 0 评论