- 博客(13)
- 收藏
- 关注
原创 代码随想录训练营Day10 LeetCode232.用栈实现队列 225.用队列实现栈 20.有效的括号 1047.删除字符串中所有相邻重复项
(一)思路1.用两个栈来倒换元素的顺序,实现先进先出2.push()压入元素3.pop()删除栈顶元素并返回该元素:(1)先判断out_sta是否为空,如果为空再开始压入元素(2)把in_sta中的元素出栈,压入out_sat中(3)将栈顶元素弹出并返回该元素4.peek()返回栈顶元素(1)直接调用上面实现的this->pop()弹出栈顶元素,返回弹出元素,再把弹出元素加进去5.empty()判断栈为空(1)判断两个栈都为空就返回true。
2025-08-15 09:24:09
263
原创 代码随想录训练营Day9 LeetCode151.反转字符串中的单词 卡码网右旋转字符串 LeetCode28.找出字符串第一个匹配项的下标 LeetCode459.重复子字符串
2025-08-14 15:24:55
117
原创 代码随想录Day8 LeetCode 344.反转字符串 541. 反转字符串II 卡码 54.替换数字
344.反转字符串(一)思路就是利用一个双指针从数组两边交换数组元素(二)注意事项for循环结束条件i<数组.size()/2541. 反转字符串II(一)思路1.定义一个函数,用于反转元素 注意:这里对字符串的引用需要加一个&,函数外也可以修改2.for循环遍历字符串(1)用i+=(2*k)代替i++,因为我们需要每2k给为一组进行操作(2)在循环内判断if(i+k<=数组.size())反转第i~第i+k-1位元素;else 反转第i位到字符串最后一位元素。
2025-08-13 10:53:09
193
原创 代码随想录训练营 Day7 LeetCode 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
2.处理C数组和D数组,运用O(n方)的for循环遍历将他们相加,并在unordered_map中寻找0-(c+d),因为a+b=0-(c+d),如果有计数结果加上unordered_map[a+b]的value值,如果没有不做处理。1.预处理A数组和B数组,运用O(n方)的for循环遍历,将他们相加,存到unordered_map中,key=A+B的结果元素,value=该结果出现的频率。①剪枝:nums[k]+nums[i]>target&&nums[k]+nums[i]>=0;(4)while循环。
2025-08-12 14:20:32
342
原创 代码随想录训练营Day6 LeetCode 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1.两数之和
(一)思路1.定义一个长度为26的hash数组,因为元素的个数只有a~z 26个英文字母2.第一层for循环:遍历s中的元素,hash[s[i]-'a']++,如此a对应的索引就是0,b对应1,c对应23.第二层for循环:遍历t中的元素,hash[t[i]-'a']--4.第三层for循环:遍历hash,判断每一个索引对应的值是不是都是0,如果不是则返回false,如果全都为0就返回true349. 两个数组的交集解法一:unordered_set(一)思路。
2025-08-11 15:39:56
429
原创 代码随想录训练营Day4:LeetCode24.两两交换链表中节点LeetCode19.删除链表倒数第N个节点 面试题02.07链表相交 LeetCode142.环形链表(二)
(一)思路1.定义一个虚拟节点和一个cur指针,让cur指针指向虚拟节点2.这样每次cur->next和cur->next->next就是要交换的元素3.循环条件:cur->next!=nullptr4.循环语句中,首先先定义一个first=cur->next,second=cur->next->next,和临时节点,存放second后一个节点(二)注意事项1.每一次交换之后都要更新cur指针 cur=first;
2025-08-09 14:28:13
625
原创 代码随想录训练营Day3 LeetCode 203.移除链表元素 LeetCode707.设计链表 LeetCode206.反转链表
(一)注意事项1.定义一个dummy虚拟头结点,指向头节点之前的元素好处:便于返回链表,处理头结点2.定义个cur指针.指向 dummy当我到 cur->next->var==val,cur->next就是要删除元素:删除操作:cur->next =cur->next->next;
2025-08-08 13:20:24
625
原创 代码随想录训练营Day2 Leetcode 209.长度最小子数组 Leetcode 59.螺旋矩阵(二) 区间和 开发商购买土地
(一)解法:滑动窗口,双指针(二)知识点:1.定义两个指针:两个指针构成了一个窗口,当sum>=target的时候,左指针++;其他时候右指针++;2.定义一个result记录窗口最小的时候的大小,初始化时定义为INT_MAX(这个来源于#include<climits>),当滑动窗口缩小的时候,更新result值。3.窗口大小=右指针-左指针+1(r-l+1);4.slow++的时机在更新完滑动窗口的大小之后。
2025-08-07 19:03:58
308
原创 代码随想录训练营Day1 Leetcode704二分查找 Leetcode27移除元素 Leetcode977有序数组的平方
有序无重复元素(一)问题1.leftright?right=middle-13.取中间值的时候的越界问题?(二)问题所在1.[left,right] 左闭右闭 [left,right) 左闭右开 没分清楚(三)解决1.例1.[left,right]左闭右闭left=0;while(left<=right)-------//因为[1,1]左边可以取到右边可以取到,存在1=1的情况right=middle-1;
2025-08-06 12:59:57
1583
1
空空如也
微信开发者工具报错 setting.json
2025-06-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅