算法笔记
记录算法基础模板
Antiiii_
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。原创 2023-01-26 20:35:54 · 53 阅读 · 0 评论 -
剑指 Offer 35. 复杂链表的复制
请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。原创 2023-01-28 21:46:11 · 152 阅读 · 0 评论 -
剑指 Offer 24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。原创 2023-01-27 13:39:27 · 59 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。原创 2023-01-28 22:33:30 · 36 阅读 · 0 评论 -
剑指 Offer 58 - II. 左旋转字符串
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。原创 2023-01-28 22:44:20 · 50 阅读 · 0 评论 -
DFS:排列数字
【代码】DFS:排列数字。原创 2023-03-14 23:05:45 · 73 阅读 · 0 评论 -
冒泡排序练习题
【代码】冒泡排序联系。原创 2023-03-13 10:58:29 · 314 阅读 · 0 评论 -
快排模板(Java)
【代码】快排模板(Java)原创 2023-03-19 15:20:26 · 115 阅读 · 0 评论 -
归并排序模板(Java)
【代码】归并排序模板(Java)原创 2023-03-19 17:55:37 · 70 阅读 · 0 评论 -
高精度计算模板(Java)
主要思路:高精度数字用数组存储,低位数字存在数组的低位,然后依次按位计算。减法思路:考虑减数和被减数的大小,适当调换参数位置,借位。乘法思路:被乘数的每一位乘以乘数。除法思路:被除数的每一位除以除数。原创 2023-03-28 23:18:26 · 108 阅读 · 0 评论 -
前缀和算法模板(Java)
前缀和原创 2023-04-04 18:12:07 · 105 阅读 · 0 评论 -
二分查找的模板及应用(Java)
整数二分需要注意边界问题,mid是否在答案范围内,答案必须在区间内。浮点数二分只要差值在一个很小的范围内即可判为找到。原创 2023-04-04 18:16:56 · 96 阅读 · 0 评论 -
差分算法模板(Java)
差分其实是前缀和的逆运算。原创 2023-04-04 21:27:16 · 377 阅读 · 0 评论 -
双指针算法模板
思路:a是被操作数组,s是用于记录某个数字出现了几次,a[i]代表当前指到的数字,s[a[i]]则代表这个数字出现了几次,当一个数字出现了一次以上的时候,代表在i指针和j指针之内必有重复数字,j指针一直向前挪,直到该数字出现次数在i和j中恢复为1.可以把双层循环的O(n^2)算法优化为O(n)。原创 2023-04-08 20:50:00 · 98 阅读 · 0 评论 -
Leetcode笔记:剑指 Offer 30. 包含min函数的栈
基于动态规划的思想,自定义一个链表,写一个Node节点,Node记录当前节点的值,截止到当前节点的最小值以及下一个节点。注意最小值是包含当前节点之前的最小值,所以弹出元素最小值的获取也不受影响。定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。解法参考的是评论区大佬。原创 2023-01-24 23:07:10 · 106 阅读 · 0 评论 -
Leetcode笔记:剑指 Offer 09. 用两个栈实现队列
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )原创 2023-01-24 22:00:27 · 55 阅读 · 0 评论