![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法训练营
文章平均质量分 68
学不会2233
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第十五天|层序遍历×10、226.翻转二叉树、101.对称二叉树 2
×10。原创 2024-04-11 15:53:34 · 828 阅读 · 0 评论 -
代码随想录算法训练营第十三天| 理论基础、递归遍历、迭代遍历、统一迭代
文章讲解:视频讲解:题目链接:文章讲解:视频讲解:题目链接:文章讲解:视频讲解:原创 2024-03-18 20:59:06 · 216 阅读 · 0 评论 -
代码随想录算法训练营第十二天| 239. 滑动窗口最大值、347.前 K 个高频元素、总结
1.设计单调队列。push得逻辑是每次新加入的值跟队列元素一一比较,先while判断,将小于新加入值得元素全部pop,结束while,然后push这个新值。pop得逻辑是每次将滑动窗口需要移除得元素和队列pop得值比较,如果相等则pop,不相等说明在push元素得时候因为小于新加入得值已经被pop出去了。front逻辑则是返回队列最前得元素。 1.设计单调队列的数据结构,即MyQueue类 1.太难还没看懂 1.没看懂原创 2024-03-18 15:25:45 · 638 阅读 · 0 评论 -
代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
1.有三种不匹配情况。1.把字符串字符一个个放入栈,每次进入循环先判断字符和栈顶字符是否相等,相等则将字符从栈中pop,然后遍历下一个字符,最后从栈取元素并反转顺序。1.先想明白全部不匹配的情况再写if代码。1.进行运算时,是nums2在前。原创 2024-03-17 16:17:56 · 715 阅读 · 0 评论 -
代码随想录算法训练营第十天| 理论基础、232.用栈实现队列、225. 用队列实现栈
重要知识点:文章中四个问题、STL的三个版本、栈和队列的底层实现。 1.考察对栈和队列的理解。具体是用两个栈实现队列,分别是入栈和出栈。数据push进入栈,在出栈时,从入栈中顶层把数据放入出栈,再pop即实现了先入先出。 1.无225. 用队列实现栈解题思路: 1.用两个队列实现栈。que2是对que1的备份,当出栈时,将que1除最后一个元素外的其它元素都存放到que2中,然后front最后一个元素实现出栈,最后将que1=que2实现还原并把q原创 2024-03-17 14:43:53 · 615 阅读 · 0 评论 -
代码随想录算法训练营第八天| 28.实现strStr(),459.重复的子字符串,字符串总结,双指针回顾
代码随想录。原创 2024-03-14 14:18:23 · 848 阅读 · 0 评论 -
代码随想录算法训练营第七天| 344.反转字符串,541.反转字符串Ⅱ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串
【代码】代码随想录算法训练营第六天| 344.反转字符串,541.反转字符串Ⅱ,卡码网:54.替换数字,151.翻转字符串里的单词,卡码网:55.右旋转字符串。原创 2024-03-13 16:11:21 · 1235 阅读 · 0 评论 -
代码随想录算法训练营第六天| 454.四数相加Ⅱ,383.赎金信,15.三数之和,18.四数之和,总结
454.四数相加Ⅱ解题思路: 1.用两个双重for循环,第一个双重for循环计算nums1和nums2中相加值所有可能性并保存到unordered_map中,键为相加的和,值为相加和出现的次数,第二个双重for循环同样计算nums3和nums4相加值得和,然后在map中寻找0 -(c+d),找到了nums1和nums2中有对应得两个元素与nums3和nums4当前遍历到的两个元素和为0,此时对计数count加上mao得value值。原创 2024-03-12 15:24:49 · 1568 阅读 · 0 评论 -
代码随想录算法训练营第五天| 哈希表理论基础,242.有效的字母异位词,349.两个数组的交集,202.快乐数,1.两数之和
1.首先要得到输入的整数n各位置数字的平方相加的和sum,然后再while(1)无限循环中判断sum是否为1,不为1,不为1进入set的if判断,如果这个sum不在set容器中出现过,把这个数插入到set容器中,否则表明sum在set容器中出现过,那么说明这个数按快乐数的计数规则会陷入循环中且不为1,返回false;如2,每一次计数后的值分别为4 16 37 58 89 145 42 20 4,在第9次时,会重新变为4,即进入循环。1.map容器第一个位置存放元素,第二个位置存放的才是元素下标。原创 2024-03-11 16:42:37 · 2368 阅读 · 0 评论 -
代码随想录算法训练营第四天| 24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交 、142.环形链表II
1.写循环,每次循环处理两个节点。因为要获取处理的两个节点,以用来改变它们的next,因此指针需要位于要处理两个节点的前面一个节点,接着定义temp临时变量存储节点,后面改变每个节点的next后即可。原创 2024-03-09 14:27:15 · 1374 阅读 · 0 评论 -
代码随想录算法训练营第三天| 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表
1.代码的具体实现题目的头结点是链表的第一个元素,而不是我之前学过的教程中已经指向第一个元素的结点。1.链表移除元素的基本思路。这道题主要是代码实现。定义cur和pre指针。原创 2024-03-08 18:44:56 · 2032 阅读 · 0 评论 -
代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
1.双指针法。定义左指针left和右指针right,比较大小后移动一个指针向中间靠拢。 1.循环临界条件的判断。应该是left小于等于right时候一直循环。 2.当左右指针指向的值相等时,不用同时处理两个指针位置,仍单独处理一个指针位置即可,否则可能会错过right=left的时候。209、长度最小的子数组解题思路: 1.双指针法。定义start和end两个从0开始的指针,不断向后移动end,累计start和end之内元素的和sum,当sum>=原创 2024-03-08 16:57:12 · 2142 阅读 · 1 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素。
二分查找方法不必赘述,用代码实现的思路为:创建left、right和middle的变量,初始值分别为数组最左边和最右边的下标,middle的值为left加right的一半(middle也是下标)。对左闭右闭写法区间重新取值的个人见解:左闭右闭写法中,right和left的取值是等于middle还是middle加减1都可以,让left、right取值等于middle是偷懒的写法但在数学逻辑上不严谨,存在对重复元素的判断。数组在定义后在内存中大小是固定不变的,所谓的删除操作都是覆盖操作。原创 2024-03-06 14:47:09 · 1732 阅读 · 0 评论