算法通关村第一期
子琦啊
若还有雄心壮志,那成败都是小事
展开
-
如何使用中序和后序来恢复一颗二叉树——算法通关村第六关【青铜】
首先我们需要知道二叉树的两个序列(前序和中序 || 后序和中序),注意要推出原二叉树必须要有中序序列,这个在下面的解析中可以了解到。然后可以先从左子树开始向下推算,通过后序判断根,通过中序划分左右子树,则最后的结果如图所示。我们知道,通过二叉树可以判断树的前中后序列,那么如何通过树的序列来反推二叉树的形状呢?我们就以下面这个序列来举例,通过中序和后序来恢复二叉树。首先通过中序得到二叉树的根,中序就可以将左右子树划分开。前序和中序的操作方法一样,操作简单方式固定。大家可以自行试试其他方法。原创 2023-09-10 21:42:16 · 109 阅读 · 1 评论 -
盘点图的常见概念问题——算法通关村第二十关【青铜】
图是一种数据结构,其中结点可以具有零个或多个相邻元素,两个结点之间的连接称为边,结点也可以称为顶点。最典型的就是地铁线路图:一般情况下,图抽象为只有无向图中,一个图有n个顶点,则最少有n-1条边,最多有n(n - 1)/2条边。原创 2023-09-10 20:47:07 · 251 阅读 · 1 评论 -
不简单的字符串转换问题——算法通关村第十二关【青铜】
字符串是一种特殊的数据类型,严格意义上来说不是数据结构中的一种。它是由许多字符组成的,因此可以存放字母数字特殊字符等多种数据。原创 2023-09-10 20:45:34 · 201 阅读 · 1 评论 -
用栈实现队列——算法通关村第5关【白银】
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty)删除或获取开头元素时,输出栈为空则将输入栈的数据依次弹出并压入输出栈。使用两个栈来完成,一个用作输出,一个用作输入。leetCode232 用栈实现队列。原创 2023-09-07 21:32:54 · 184 阅读 · 0 评论 -
队列和Hash的概念特征——算法通关村第五关【青铜】
哈希(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的 输出,这个输出值就是散列值。哈希的基本存放方式(以大小为7为例):将1到6存入的时候,图示如下:继续存7到13。原创 2023-09-07 21:31:12 · 197 阅读 · 0 评论 -
力扣20.括号匹配问题解析——算法通关村【白银】
leetcode20.给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。分析:本题判断字符串有效的方法是对应的括号一一对应。这时可以用到key和value来匹配,需要用到map。如果不是key值,则为value值,即为右括号,就可以与栈中的值匹配,如果不匹配就返回false;遍历给定的字符串,先判断当前符号是否是栈中的key值,对应为左括号。原创 2023-09-06 20:41:48 · 260 阅读 · 1 评论 -
如何基于数组实现栈——算法通关村第四关【青铜】
栈和队列是比较特殊的线性表,又称之为访问受限的线性表。把允许操作的一端称为栈顶(To),不可操作的一端称为栈底(Bottom),同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop)。若栈中没有任何元素,则称为空栈。原创 2023-09-06 20:39:59 · 201 阅读 · 1 评论 -
双指针思想以及应用——算法通关村第三关【白银挑战】
数组中的元素都是紧挨在一起的,所以进行数组的修改比较困难, 修改一个时常需要移动大部分元素。这就可以用到双指针来进行便捷操作。原创 2023-09-05 20:42:05 · 219 阅读 · 0 评论 -
不简单的数组增删改查|数组基础——算法通关村第3关青铜挑战
数组是线性表的一种,接下来介绍基本概念。原创 2023-09-03 18:58:21 · 266 阅读 · 0 评论 -
位运算实现压缩存储-编程导航算法通关村
题目要求:给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB的内存可用,该如何打印数组中所有重复元素。思路:本题因为只给了3kb的内存空间,直接将接收到的数组新创建一个数组接受空间会超出。(最大为32000,则需要至少32KB大小的空间 )遍历数组,如果是没有使用过的位向量则将位置记录下来,如果前面已经出现过则表示重复元素,输出即可。所以可以创建一个32000位比特的位向量,每一个位向量的位置表示一个整数;原创 2023-09-03 17:28:47 · 238 阅读 · 0 评论 -
算法通关村——位运算的高频算法题(1)LeetCode 191
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为。原创 2023-09-02 23:06:47 · 298 阅读 · 0 评论 -
位运算规则【算法通关村十一关(1)】
计算机中的数字全部用表示,也就是二进制运算。机器数由8位组成,第一位符号位机器数对应的就是原本的数。例如00000001 = +1其中机器数分为原码、反码、补码:机器数原本的值,第一位符号位,其余位值。:正数反码为它本身;负数的反码在原码基础上符号位不变,其余位取反补码:正数补码为它本身;负数的补码在原码基础上符号位不变,其余位取反+1。原创 2023-08-30 23:06:39 · 358 阅读 · 0 评论 -
力扣25.K个一组反转【黄金挑战|第二关】
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。原创 2023-08-29 23:29:34 · 391 阅读 · 1 评论 -
链表区间反转问题解析【算法通关村第二关白银挑战】
给你单链表的头指针head和两个整数Ieft和right,其中Ieft原创 2023-08-03 18:22:10 · 754 阅读 · 0 评论 -
终于学会链表反转了【算法通关村第二关】
今天是链表反转的2个常用方法。反转要求如下:对应力扣206题。给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2023-07-31 22:22:15 · 853 阅读 · 1 评论 -
算法通关村第一关——小白也能学会的链表C_C++【编程导航】
这是编程导航的算法训练营的第一期,本关主要探讨。链表是一种常见的数据结构,链表中的数据不需要扎堆存储,每个节点之间使用链接的方式来寻找。原创 2023-07-25 21:26:00 · 1238 阅读 · 0 评论