leetcode刷题记录
yang_le_ge_yang
c++/go
展开
-
Leetcode.203.移除链表元素
本题主要是在于头节点的删除和中间节点删除不一样需要考虑到,因为我们还需要返回这个链表的头节点。2.假设头节点后面连续几个都是目标节点,那么需要去进行加一个while循环处理。5.虚拟头节点可以把两种情况变为一种情况,因为可以方便记录头节点的位置。3.在链表的题目里需要注意,需要先判断节点是否为空才能访问节点。1.假设头节点就是目标节点,所以头节点需要特殊处理。4.c++中需要对删除的节点手动释放。原创 2024-07-25 17:13:19 · 210 阅读 · 0 评论 -
Leetcode151. 反转字符串中的单词
Leetcode151原创 2024-07-18 15:04:59 · 138 阅读 · 0 评论 -
Leetcode28.找出一个字符串中第一个匹配项的下标(KMP)
kmp实操,分为strstr处理比较函数,和get_next处理next数组。核心还是在于理解next数组,这里给没有匹配的next赋值-1,所以代码中需要有>0的判断。next[j]记录的是到j为止,包括j,前后缀重复长度,所以应该应用于子串j+1的位置。原创 2024-07-15 13:00:04 · 223 阅读 · 1 评论 -
LeetCode--49.字母异位词分组、128.最长连续序列
本题实际意义是将字母组成相同的单词分为一组,那么我们显然首先想如何将“这个条件转化,他们之间的区别实际上就是字母顺序,那么通过对单词排序其实就可以让他们没有差别。而排序后相同的单词分为一组,那么区分组与组之间的就是单词了,所以我们可以用哈希表的方式,让排序后的单词为键,排序前的单词装在一个vector<string>里,因为我们要返回vector<vector<string>>的类型。原创 2024-04-18 17:22:16 · 366 阅读 · 1 评论 -
leetcode——两数之和(新手总结自用)
对于本题,很容易想到暴力解法,两个for循环可以解决,时间复杂度为O(n^2);但我们可以想到式子其实是两个数x+y=target,y=target-x;所以通过一次遍历,在查找对应的y就可以解决,利用unordered_map就可以很好滴解决查找问题;时间复杂度为O(n);原创 2024-04-15 23:40:05 · 380 阅读 · 0 评论