
算法
文章平均质量分 89
月明水寒
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营day9|151.翻转字符串里的单词 ,卡码网:55.右旋转字符串,28. 实现 strStr(),459.重复的子字符串,字符串总结,双指针回顾
最近事情较多,博客中断了,每天还在刷题,博客陆续补上。原创 2024-06-25 00:07:39 · 980 阅读 · 0 评论 -
代码随想录算法训练营day8| 344. 反转字符串,541. 反转字符串II,卡码网:54.替换数字
给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。3.3 原数组复制到扩展长度后的新数组,然后不再使用原数组、原地对新数组进行操作。编写一个函数,其作用是将输入的字符串反转过来。打印一个新的字符串,其中每个数字字符都被替换为了number。不要给另外的数组分配额外的空间,你必须。思路:想清楚外层循环增量。原创 2024-06-14 13:18:31 · 569 阅读 · 0 评论 -
代码随想录算法训练营第四天|24. 两两交换链表中的节点,19.删除链表的倒数第N个节点,面试题 02.07. 链表相交,142.环形链表II,总结
目录1. 24. 两两交换链表中的节点【中等】1.1 单循环,两两处理,并处理各种特殊情况,未加虚拟头结点 1.2 递归,从后往前,两两处理(官方题解有更优雅的递归) 1.3 单循环,两两处理,增加虚拟头结点,无需特殊处理尾部剩余单节点情况2. 19. 删除链表的倒数第 N 个结点【中等】3. 面试题 02.07. 链表相交【简单】 3.1 需知道如何判断是否相交4. 142. 环形链表 II【中等】 4.1 快慢指针、5、链表总结 1.2 递归,从后往前,两两处理(官方题解有更优雅的递归)原创 2024-06-11 22:11:49 · 913 阅读 · 0 评论 -
代码随想录算法训练营day6| 哈希表理论基础,242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1. 两数之和
day5休息。原创 2024-06-14 00:09:56 · 1061 阅读 · 1 评论 -
代码随想录算法训练营day7| 454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和
思路:前面的两两加和,并记录每个和的次数。再与后面的数组两两加和,再记录次数,最后看和为0的次数。思路:重要的是要想到双指针(不需要处理那么多边界条件特殊情况),及去重逻辑。思路:数组1、2 相加,3、4相加同时判断1、2的结果里有没有符合等于0的。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。思路:去重逻辑、在三数之和的基础上再套一层。注意,输出的顺序和三元组的顺序并不重要。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,请你计算有多少个元组。原创 2024-06-14 12:48:17 · 868 阅读 · 0 评论 -
代码随想录算法训练营第三天| 链表理论基础,203.移除链表元素,707.设计链表,206.反转链表
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。val 是当前节点的值,next 是指向下一个节点的指针/引用。// 现在,链表变为 1->3。输入:head = [1,2,6,3,4,5,6], val = 6。过程:先写的循序,然后看也可以递归,但递归写成跟循环一样的逻辑。输入:head = [7,7,7,7], val = 7。,请你反转链表,并返回反转后的链表。输出:[1,2,3,4,5]原创 2024-06-08 13:58:43 · 779 阅读 · 0 评论 -
代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。输入:target = 11, nums = [1,1,1,1,1,1,1,1]输入:target = 7, nums = [2,3,1,2,4,3]排序后,数组变为 [0,1,9,16,100]原创 2024-06-06 22:56:43 · 924 阅读 · 0 评论 -
代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
Java是没有指针的,同时也不对程序员暴露其元素的地址,寻址操作完全交给虚拟机(根据输出的地址可以看出,这不是真正的地址,而是经过处理过后的数值了,我们也可以看出,二维数组的每一行头结点的地址是没有规则的,更谈不上连续)带来的缺点:正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。数组可以方便的通过下标索引的方式获取到下标下对应的数据(数组下标都是从0开始的)数组是存放在连续内存空间上的相同类型数据的集合(数组内存空间的地址是连续的)原创 2024-06-05 23:45:11 · 301 阅读 · 2 评论