自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 哈希表

概述哈希表是一种使用哈希函数组织数据,以支持快速插入和搜索的数据结构。有两种不同类型的哈希表:哈希集合和哈希映射。哈希集合:是集合数据结构的实现之一,用于存储非重复值。 哈希映射:是映射数据结构的实现之一,用于存储(key, value)键值对。哈希表的原理哈希表的关键思想是使用哈希函数将键映射到存储桶。更确切地说,当我们插入一个新键时,哈希函数将决定该键应该分配到哪个桶中,并将该键存储在相应的桶中; 当我们想要搜索一个键时,哈希表将使用相同的哈希函数来查找对应的桶,并只在特定的桶

2021-04-24 12:45:26 185

原创 559. N 叉树的最大深度

目录题目描述思路分析代码实现复杂度题目描述给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。示例 1:输入:root = [1,null,3,2,4,null,5,6]输出:3示例 2:输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null

2021-03-31 18:08:48 73

原创 剑指 Offer 55 - I. 二叉树的深度

题目描述输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。提示:节点总数 <= 10000思路分析方法一:后序遍历、深度优先搜索(递归、栈)树的后序遍历 / 深度优先搜索往往利用 递归 或 栈 实现。 关键点: 此树的深度...

2021-03-31 16:35:48 72

原创 面试题 04.02. 最小高度树

题目描述给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5 思路分析方法一:深度优先搜索+递归二叉搜索树的中序遍历是一个递增的有序序列。如果要保证一个递增的有序序列对应二叉搜索树的深度最小,那么需要将中间结点作

2021-03-31 09:20:59 51

原创 104. 二叉树的最大深度

目录题目描述思路分析代码实现复杂度题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。思路分析方法一:深度优先搜索DFS如果我们知道了左子树和右子树的最大深度是和,那么该二叉树的最大深度即为方法二...

2021-03-30 17:58:33 42

原创 143. 重排链表

题目描述给定一个单链表L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.思路分析方法一:线性表 方法二:寻..

2021-03-29 23:53:05 72

原创 234. 回文链表

题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路分析方法一:将值复制到数组中后用双指针法 方法二:递归 方法三:快慢指针代码实现/** * Definition for singly-linked list. * struct ListNode { * int va.

2021-03-29 23:47:32 68

原创 面试题 02.07. 链表相交

目录题目描述思路分析代码实现复杂度题目描述给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node

2021-03-29 23:33:26 44

原创 剑指 Offer 06. 从尾到头打印链表

题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000思路分析方法一:栈栈的特点是后进先出,即最后压入栈的元素最先弹出。考虑到栈的这一特点,使用栈将链表元素顺序倒置。从链表的头节点开始,依次将每个节点压入栈内,然后依次弹出栈内的元素并存储到数组中。代码实现/** * Definition for singly-linked.

2021-03-29 23:20:22 39

原创 剑指 Offer 24. 反转链表

题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL限制:0 <= 节点个数 <= 5000思路分析方法一:迭代在遍历链表时,将当前节点的 next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新

2021-03-29 23:08:27 52

原创 203. 移除链表元素

目录题目描述思路分析代码实现复杂度题目描述给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。示例 1:输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]示例 2:输入:head = [], val = 1输出:[]示例 3:输入:head = [7,7,7,7], val = 7输出:[]提示:列表中的..

2021-03-29 22:50:07 165

原创 1290. 二进制链表转整数

目录题目描述思路分析代码实现复杂度题目描述给你一个单链表的引用结点head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出:1示例 4:输入:head = [1,0,0,1,0,0,1,1.

2021-03-29 22:27:06 122

原创 876. 链表的中间结点

目录题目描述思路分析代码实现复杂度题目描述给定一个头结点为 head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.n..

2021-03-29 22:00:26 96

原创 删除中间节点

目录题目描述思路分析代码实现题目描述实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f思路分析删除当前节点,必须知道pre节点,这里只能访问当前节点,就只能先将next节点变成当前结点,再把next节点删除。代码实现/** * Def.

2021-03-29 21:33:35 127

翻译 算法训练 数的划分 蓝桥杯

目录算法训练 数的划分  问题描述思路代码实现 算法训练 数的划分  时间限制:1.0s   内存限制:256.0MB   问题描述  将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。  例如:n=7,k=3,下面三种分法被认为是相同的。  1,1,5; 1,5,1; 5,1,1;  问有多少种不同的分法。输入格式  n,k...

2019-02-22 11:47:02 700

原创 算法训练 入学考试 蓝桥杯

入学考试  时间限制:1.0s   内存限制:256.0MB   问题描述  辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一...

2019-02-22 01:32:24 239

原创 算法训练 装箱问题 蓝桥杯

目录装箱问题  问题描述 思路代码实现 装箱问题  时间限制:1.0s   内存限制:256.0MB   问题描述 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入格式  第一行为一个整数,表示箱子容量;  第二行为...

2019-02-22 00:43:51 451

原创 求前缀表达式的值

 目录 求前缀表达式的值 问题描述  代码实现求前缀表达式的值 问题描述 算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。请设计程序计算前缀表达式的结果值。输入格式:输入在一行内给出不超过30个字符的前缀表达式,只包含+、...

2019-02-20 22:37:00 306 2

原创 P0404 阿尔法乘积 蓝桥杯

算法提高 P0404  时间限制:1.0s   内存限制:256.0MB   问题描述  计算一个无符号整数的阿尔法乘积。对于一个无符号整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如,4018224312的阿尔法乘积等于8,它是经过以下的几个步骤计算出...

2019-02-19 17:40:53 181

原创 change 蓝桥杯

目录 算法提高 change 问题描述代码实现算法提高 change 时间限制:1.0s 内存限制:256.0MB 问题描述  数组A中共有n个元素,初始全为0。你可以对数组进行两种操作:1、将数组中的一个元素加1;2、将数组中所有元素乘2。求将数组A从初始状态变为目标状态B所需要的最少操作数。输入格式  第一行一个正整数n表示...

2019-02-19 17:12:16 271 1

原创 蓝桥杯 合根植物(并查集)

目录 历届试题 合根植物  问题描述代码实现 历届试题 合根植物  时间限制:2.0s   内存限制:256.0MB   问题描述  w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。  这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。  如果我们告诉你哪些小格子间...

2019-02-18 01:51:25 260

空空如也

空空如也

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

TA关注的人

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