- 博客(21)
- 收藏
- 关注
原创 48Days-Day06 | 字符串替换,神奇数,DNA序列
组装两位数时,把这个数先转换成一个数字的数组,用i表示十位数字,j表示个位数字,当i == 0时,或者i == j,即i, j指向同一个位置时,不组装,其它时候组装成一个两位数,并传入质数判断函数中判断是否为质数。模拟,把题目中给的字符数组先放入队列中,遍历字符串,如果遇到%,就把这个位置和它的下一个位置替换成队列中的队首元素,遍历结束后,如果队列不为空,则说明还有字符,就拼接在字符串末尾。滑动窗口(定长窗口,应该为要求的长度)
2025-07-25 19:39:34
144
原创 48Days-Day05 | 平方数,分组,拓扑排序
暴力枚举,枚举每个组最多有多少人,根据这个人数算出每类可以分为多少个小组,当所有类型的小组和<=要求的组数时,就说明这个结果成立。数学,先对这个数开根号,取整,求根号值与根号值+1分别的平方,再比较与原数的距离得出结果。采用二分来优化寻找组的过程。
2025-07-25 14:56:02
125
原创 48Days-Day04 | 乒乓球筐,组队竞赛,删除相邻数字的最大分数
贪心,每次尽可能地找第二个数最大的情况,我们引入三个指针left, mid, right,left为一组中最小的值,right为一组中最大的值,mid为中间值,即一组中我们需要的结果,那么在数组有序的情况下,我们只需要每次left++,mid = right-1,然后mid和right同时作为一个整体左移就可以保证贪心策略。用一个数组sum来统计每个数字的和,在选中该数字的时候,它的前一个数字就不能被选中,于是我们用两个数组f, g;当不选择i位置时,i-1位置可以选,可以不选,所以。
2025-07-24 15:09:12
148
原创 48Days-Day03 | 删除公共字符,两个链表的第一个公共结点,mari和shiny
直接哈希,把第二个字符塞集合里面,遍历第一个,只要在集合里面有的就跳过。此处我们采用快慢指针法,具体讲述请参考我的博客。存储结果的长度应该为long,否则会溢出。此处我们采用的是dp。
2025-07-19 22:52:38
466
2
原创 48Days-Day02 | 游游的水果礼包,买卖股票II,倒置字符串
这个题比起Dya01的I的区别时,这题可以无限次进行买卖,所有我们只要股票的价格有上升,就把利润全部拿到手。由此我们可以知道,只要求出x和y的值就可以得到对应的价值,因此我们此处枚举x所有可能的取值,并找到对应的y。非常简单常规的一道字符串处理题,按照空格分隔字符串,逆序遍历字符串并拼接成一个新字符串即可。该字符串末尾是没有空格的,因此要单独处理一下,此处采用的是正则表达式来去除的。枚举,将获得最后的价值看为一个一元二次方程组。
2025-07-19 11:50:27
204
2
原创 48Days-Day01 | 最长回文子串,股票买卖问题I,过河卒
贪心算法,我们将第i天视为卖出股票的日子,那么对于第i天来说,如果选择这天卖出股票,那么应该在[0, i]天内选择一个最低点买入股票,此时就可以获得最大利润,因此我们只需要维护好一个min值,确保我们知道第[0, i]天中的最低点即可。使用中心扩展算法,如:假设此时我们有一个字符串bbabb,那么我们假设从a开始枚举,就创建一个left指针和一个right指针,同时向两边扩散判断是否相等以此来判断是否为回文串,因此我们只需要枚举所有的中心点,然后向两边扩散。
2025-07-18 13:59:14
348
2
原创 递归P1 | 斐波那契;费解的开关
把经典反式递归的思路逆向化一下,即正向递推,F[n] = F[n-1] + F[n-2], 这样的思路来用循环求解第n个数的值。个人认为注意点不是很多,我个人踩坑的地方是开辟数组长度的时候是。
2025-03-06 23:45:57
273
原创 算法训练Day09 | LeetCode 20 有效的括号, LeetCode 232 用栈实现队列, LeetCode 225 用队列实现栈, LeetCode 1047 删除字符串中相邻重复项
每次获取的元素,由于是使用的charAt,所以此时是char,判断是否相等要用'',而且是==,而非equals()最后返回结果的时候要把res.toString(),因为题目要求的返回类型是String。每次插入一个元素之后就重新排一次顺序,使它拥有像栈一样的。
2025-02-26 23:35:22
321
原创 算法训练Day08 | LeetCode 151 反转字符串中的单词, 右旋字符串
今天的练习中,对于我来说印象最深刻的就是151的第二种解法,一是这是快慢指针的一个很妙的用法,二是这是一种新的解题想法,除了说可以正向的去思考,还可以逆向思考,就像这道题看作是倒着的单词拼接而不一定要是正向得思考如何变成逆序模样。
2025-02-24 23:36:52
278
原创 算法训练Day07 | LeetCode 344 反转字符串, LeetCode 541 反转字符串II, 替换数字
今天的重点主要是反转字符串,基本的和进阶版,当然,对于正则表达式也有了初步的了解。
2025-02-23 23:27:57
427
原创 算法训练Day06 | LeetCode 15 三数和, LeetCode 18 四数和, LeetCode 383赎金信, LeetCode 454 四数相加
这次最大的收获是了解到了分组、剪枝和去重操作,在写代码的过程中要考虑全面一点,多注意细节,比如在写四数和的时候,我判断sum写成了>0, <0,完全沉浸在三数和的影响中,所以需要注意,以后应该保持更清醒的头脑。
2025-02-22 23:47:18
775
原创 算法训练Day05 | LeetCode 1 两数之和, LeetCode 202 快乐数, LeetCode 242 字母异位词, LeetCode 349 两个数组的交集
今天主要是关于哈希表的应用,set只有值且自然去重,map是键值对,键不可重复,值可重复,对于查找需求比较大的情况下建议使用哈希表。
2025-02-18 18:01:38
894
原创 Day04 | LeetCode 24 交换链表节点, LeetCode 19 删除倒N节点, LeetCode 142 环形链表, 面试题02.07 链表相交
今天主要是对于快慢指针法的理解,尤其是环形链表那道题,在做题过程中,思路固然重要,细节也绝不能放过,要注意细节。
2025-02-15 18:09:36
590
原创 Day03 | LeetCode 203 移除链表元素, LeetCode 206 反转链表, LeetCode 707 设计链表
本次的算法练习主要是针对了一些关于链表的基本操作,重点是关于链表的反转,对于虚拟头节点的应用。
2025-02-15 13:08:00
519
原创 算法训练day02 | LeetCode 209 长度最小的子数组; LeetCode 59 螺旋矩阵II; 开发商购买土地
今天的内容主要是前缀和,滑动窗口,在写开发商买土地的时候花了比较多的时间,是一道很好的利用了区间和的题,对于区间和有了更深刻的理解。
2025-02-13 18:04:58
745
6
原创 算法训练Day1: LeetCode704 二分查找, LeetCode27 移除元素, LeetCode977 有序数组的平方
二分查找法的运用双指针的运用。
2025-02-12 22:56:24
211
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人