![](https://img-blog.csdnimg.cn/direct/5b28cb080e9443f9a6239f8c138e4950.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 68
记录自己的算法学习
不决问春风
这个作者很懒,什么都没留下…
展开
-
234.回文链表 一种巧妙的快慢指针法
思路:快指针走慢指针两倍 当快指针走到末尾,慢指针刚好走到中间,在走的过程中慢指针将前半段进行反转,然后再比较。原创 2024-05-15 21:05:19 · 81 阅读 · 0 评论 -
560.和为 K 的子数组
折腾了好久,总算搞明白过程了......原创 2024-05-11 19:15:06 · 130 阅读 · 1 评论 -
2. 两数相加 模拟
设置 carry 表示是否进位。原创 2024-05-16 13:32:12 · 188 阅读 · 0 评论 -
代码随想录第十天 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值
我们在删除相邻重复项的时候,其实就是要知道当前遍历的这个元素,我们在前一位是不是遍历过一样数值的元素,那么如何记录前面遍历过的元素呢?所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。那么什么时候说明左括号和右括号全都匹配了呢,就是字符串遍历完之后,栈是空的,就说明全都匹配了。然后再去做对应的消除操作。原创 2023-06-21 00:13:59 · 42 阅读 · 0 评论 -
代码随想录第九天 | 232.用栈实现队列、225. 用队列实现栈
在代码实现的时候,会发现pop() 和 peek()两个函数功能类似,代码实现上也是类似的,可以思考一下如何把代码抽象一下。,把que1最后面的元素以外的元素都备份到que2,然后弹出最后面的元素,再把其他元素从que2导回que1。但是依然还是要用两个队列来模拟栈,只不过没有输入和输出的关系,而是另一个队列完全用来备份的!所以用栈实现队列, 和用队列实现栈的思路还是不一样的,这取决于这两个数据结构的性质。使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈。最后如何判断队列为空呢?原创 2023-06-20 23:50:29 · 45 阅读 · 1 评论 -
代码随想录第八天 | 344.反转字符串、541. 反转字符串II、题目:剑指Offer 05.替换空格、151.翻转字符串里的单词、题目:剑指Offer58-II.左旋转字符串
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。原创 2023-06-01 23:47:55 · 55 阅读 · 1 评论 -
代码随想录第七天 | 第454题.四数相加II、383. 赎金信、第15题. 三数之和、第18题. 四数之和
nums1。原创 2023-06-01 23:32:26 · 37 阅读 · 1 评论 -
代码随想录第六天 | 242.有效的字母异位词、349. 两个数组的交集、第202题. 快乐数、1. 两数之和
题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。原创 2023-05-30 21:57:17 · 27 阅读 · 1 评论 -
代码随想录第四天 | 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。原创 2023-05-28 23:00:26 · 45 阅读 · 0 评论 -
代码随想录第三天 | 203.移除链表元素、707.设计链表、59.螺旋矩阵II、206.反转链表
题目:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。两种方式处理一种是通过设置虚拟头结点的方式另一种单独对头结点进行处理,再直接设置。原创 2023-05-26 23:25:05 · 40 阅读 · 1 评论 -
代码随想录第二天 | 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
题目:给你一个按排序的整数数组 nums,返回组成的新数组,要求也按排序。对数组各项进行平方,再用 冒泡排序 或者 Arrays.sort() 排序;(注:该算法复杂度为O(n+nlogn) )数组本身是有序的 但是因为负数的平方可能会很大 大到超过正数的平方因此,数组的最大值要么是最左端的数据 要么是最右端的数据我们定义一个和原数组一样长度的新的数组再定义两个新的量代表指针 变量 left 表示初始位置 变量 right 表示终末位置。原创 2023-05-25 16:43:48 · 48 阅读 · 1 评论 -
代码随想录第一天 | 704. 二分查找、27. 移除元素
题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。与方法一不同的是,方法二避免了需要保留的元素的重复赋值操作。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。快指针将不是 val 的值覆盖给 慢指针,当遇到 val 时直接++原创 2023-05-24 15:53:00 · 149 阅读 · 1 评论