自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 算法通关村(六)| 使用中序和后序来恢复一颗二叉树

中序:[3 4 8 6 7 5 2 ] [ 10 9 11 15 13 14 12]后序:[8 7 6 5 4 3 2] [10 15 14 13 12 11 9]中序:3 4 8 6 7 5 2 1 10 9 11 15 13 14 12。后序:8 7 6 5 4 3 2 10 15 14 13 12 11 9 1。中序:[10 ] 9 [11 15 13 14 12]中序:[3 4 8 6 7 5] 2。后序:[8 7 6 5 4 3] 2。后序:[8 7 6 5 4] 3。4.继续划分....

2023-07-28 11:48:23 112 1

原创 算法通关村(五)| 队栈经典算法题

将一个栈用作输入栈,push操作使用。另一个当作输出栈,用于pop和peek操作。每次pop或peek操作时若输出栈为空就将输入栈的值出栈压入输出栈中,这样顺序就是先入先出了。

2023-07-28 11:12:01 99 1

原创 算法通关村(五)| 队列和Hash

哈希也称散列,将任意长度的输入,通关散列算法,变换成固定长度的输出,这个输出值就是散列值。

2023-07-28 11:10:48 112 1

原创 算法通关村(四)| 栈解决表达式问题

表达式:类似( (2+1) * 3)这样的式子,根据不同的记法,有前缀、中缀、后缀三种方式。其区别就是运算符相对于操作数的位置。如下图中缀表达式:1 + (2 + 3) × 4 - 5前缀表达式:- + 1 × + 2 3 4 5后缀表达式:1 2 3 + 4 × + 5 -中缀表达式是人类好理解的,但是计算机不容易理解的。所以通常将中缀转为前缀或后缀。而前缀是波兰表达式,后缀就是逆波兰表达式。

2023-07-25 11:48:52 93

原创 算法通关村(四)| 栈的经典算法

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。使用哈希表和栈来解决,将三种括号放入哈希表中,然后使用栈来比对。

2023-07-25 11:47:10 34

原创 算法通关村(四)| 栈

如果想测试一下自己对栈是否理解,做一下这道题就够了:入栈顺序为1234,所有可能的出栈序列是什么?

2023-07-25 11:45:55 30

原创 算法通关村(三)| 数组难度稍高的算法题

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字用排序可以解决,一个数字出现次数超过数组长度一半,那肯定是中位数。但是排序的代价太高了,所以不用此方法。

2023-07-25 11:43:47 26

原创 算法通关村(三)| 数组的双指针思想

所谓的双指针其实就是两个变量,不一定是真的指针。例子:删除重复元素,重复元素只保留一个{1,2,2,3,3,3,4}。如果我们每删除一个重复就移动一次位置效率太低,用双指针解决方法如下图像图中这种也称快慢指针。有些场景需要从两端像中间走,这种称相向指针。还有从中间往两端走称为背向型指针。

2023-07-25 11:39:45 42

原创 算法通关村(三)| 数组

给你两个按非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 应忽略。index的位置就是尾部插入,若index等于其他值插入位置就错了(索引从0开始,size正好是尾插的位置)此时可以借助新数组来做,将选择好的放入新数组中最后返回。可以从后向前插入,两个数组元素数量是固定的,排序后最远的位置一定是最大的。

2023-07-25 11:36:28 31

原创 编程导航算法通关村(一) | 链表环问题

给定一个链表,判断链表中是否有环。假如有环,那环的位置在哪里?示例1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。

2023-07-21 19:47:31 189 1

原创 编程导航算法通关村(二) | 链表K个一组反转

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5] ​示例2:输入:head = [1,2,3,4,5], k = 3输出:[3,2,1,4,5]

2023-07-21 12:58:23 158 1

原创 编程导航算法通关村(二) | 链表反转拓展

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right。请你反转从位置 left 到位置 right 的链表节点,返回反转后的链表。示例 : 输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]

2023-07-20 20:50:19 206

原创 编程导航算法通关村(二) | 链表反转

输入一个链表并反转输入:head = [1,2,3,4,5] ​输出:[5,4,3,2,1]以下两种解法,都很重要。理解并。

2023-07-19 19:50:08 345

原创 编程导航算法通关村(一) | 链表双指针的面试题

给定头节点为head的非空单链表,返回链表的中间节点。如果有两个中间节点,而返回第二个中间结点,例如输入:[1,2,3,4,5] >>> 输出:3输入:[1,2,3,4,5,6] >>> 输出:4使用快慢指针。用两个指针slow和fast一起遍历链表。slow一次走一步,fast一次走两步。当fast到达终点,slow必然位于中间。

2023-07-18 18:13:02 426 1

原创 编程导航算法通关村(一) | 链表基本操作

一个单链表(Node)是值+节点(指针,链接后面的节点)构成单链表无论什么操作都要从头向后逐个访问,所以表头很重要!切记不要直接操作表头。

2023-07-17 13:56:21 641 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除