![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日一题
文章平均质量分 63
主要记录每日一题中不会的题目和有趣的题目
JCGKS
这个作者很懒,什么都没留下…
展开
-
每日一题2023.12.14|LeetCode3.无重复字符的最长子串
如果右边界对应的字符出现在集合中,就移动左边界,如果左边界对应的字符与右边界对应的字符不相等,就将左边界对应的字符从集合中删除,如果左边界对应的字符与右边界对应的字符相等就只移动左边界不需删除[因为右边界对应的字符与左边界对应的字符一致但是并没有将右边界对应的字符加入集合]窗口内的字符都是连续的,只需计算窗口内满足要求的最长的子串。如果该字符对应的次数大于1,就移动左边界,将左边界对应的字符的个数减1,直到右边界对应的字符个数为1。或者集合存储不重复的字符。移动窗口的右边界,将右边界对应的字符加入哈希表,原创 2023-12-14 21:16:46 · 75 阅读 · 0 评论 -
每日一题2023.11.3|41.缺失的第一个正数
i+1"也就是nums[i]这里存储的值应该是"i+1"不是的话就置换,但是发生了时间超限,顺序遍历数组中的元素,将num映射在下标为num-1的位置处,遍历完之后,哪个位置没有打上标记,那个位置加1就是缺失的第一个正数。=nums[nums[i]-1]"下标为i位置的元素与与其应该出现的位置的元素不一致时才交换。缺失的第一个正数一定是位于范围[1,n+1]内,当数组中的数都为正数并且都按照顺序出现,那么缺失的第一个正数是n+1;如果数组中包含x属于[1,N],将其置换到位置x-1。原创 2023-11-03 18:31:20 · 125 阅读 · 0 评论 -
每日一题2023.9.25|LeetCode1367.二叉树中的链表
采用前序遍历的方式从根节点开始遍历二叉树,并在遍历的过程中比较与链表节点的值是否相等,如果当前链表节点的值和树节点的值相等,就在树节点的左右子树寻找下一个链表节点;如果不相等就在树节点的左右子树寻找当前链表节点的值;后来我再次回想这版错误答案的时候,我发现错误之处并非像上述所说的那样,链表的结构不会因为传递的参数而被改变,就像遍历二叉树的时候,树的结构不会因为传递的参数而发生变化。后来我发现,我传递的参数是以指针的形式传递的,如果当前的链表节点的值与树节点的值相等,会做这么一个操作。原创 2023-09-25 14:14:54 · 194 阅读 · 0 评论 -
LRU/LFU
LRU算法更加关注数据的访问时间,而LFU算法更加关注数据的访问频率。因此,在实际应用中,需要根据具体的业务场景来选择合适的缓存淘汰算法。原创 2023-09-06 17:32:26 · 115 阅读 · 0 评论 -
每日一题2023.8.23|Leetcode918.环形数组的最大和
做环形数组最大和之前先做一下数组最大和。原创 2023-08-23 12:17:50 · 176 阅读 · 0 评论 -
每日一题2023.7.22|链表的基本操作
输入数据只有一组,第一行有n+1个整数,第一个整数是这行余下的整数数目n,后面是n个整数。这一行整数用来初始化列表的,并且输入的顺序与列表中的顺序相反,也就是说如果列表是1、2、3那么输入的顺序是3、2、1。第二行有一个整数m,代表下面还有m行,每行有一个字符串,字符串是“get”、“insert”、“delete”,“show”中的一种。如果是“get”或者“delete”,则其后跟着一个整数a,代表获得或者删除第a个元素;如果是“insert”,则其后跟着两个整数a和e,代表在第a个位置前面插入e;原创 2023-07-22 21:53:56 · 297 阅读 · 0 评论 -
每日一题2023.7.21|删除重复元素
输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开。针对每组测试数据,输出包括两行,分别是删除前和删除后的链表元素,用空格隔开;如果链表为空,则只输出一行,list is empty。根据一个递增的整数序列构造有序单链表,删除其中的重复元素;原创 2023-07-21 20:28:28 · 169 阅读 · 0 评论 -
每日一题2023.7.20|单链表反转
输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开。根据一个整数序列构造一个单链表,然后将其反转。列如:原单链表为2 3 4 5,反转之后为:5 4 3 2。针对每组测试数据,输出包括两行,分别是反转前和反转后的链表元素,用空格隔开。原创 2023-07-20 20:21:48 · 43 阅读 · 0 评论 -
每日一题2023.7.19|ACM模式
参考博客。原创 2023-07-19 22:09:45 · 1336 阅读 · 0 评论 -
每日一题2023.7.18|21.合并两个有序链表
为了方便解题,需要设置一个虚拟头结点。原创 2023-07-18 08:54:28 · 69 阅读 · 0 评论 -
每日一题2023.7.17|根据层序遍历构建二叉树
如果所给层序遍历数组非空,先构建出root结点并加入辅助队列qu,之后当qu非空时,每次从qu中取出一个结点node,从头开始取数组中的元素作为node的左右孩子结点。并将非空的左右孩子结点加入到qu中。持续上述操作直到qu为空。重新定义“print_treenode”让其不打印没有必要的NULL结点。原创 2023-07-17 07:01:22 · 181 阅读 · 0 评论 -
每日一题2023.7.16|49.字母异位词
将strs中的每个字符串的每个字符的数值之和作为哈希表的键,提交代码发现之后运行错误。时间复杂度为O(nklogk)其中n是strs中字符串的数量,k是strs中字符串的最大长度。由于互为字母异位词的两个字符串包含相同的字母,因此两个字符串中相同字母出现的次数一定是相同的,故可以将每个字母出现的次数使用字符串表示作为哈希表的键;由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定相同,故可以将排序之后的字符串作为哈希表的键;空间复杂度为O(n*k)原创 2023-07-16 10:30:02 · 349 阅读 · 0 评论