![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 51
伯纳乌纯白
Gopher/K8s/微服务/DevOps
成长中的云基础架构师
展开
-
[NOIP2004]合并果子
[NOIP2004]合并果子题目链接:https://ac.nowcoder.com/acm/contest/22904/1001来源:牛客网题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在原创 2022-05-07 16:56:47 · 101 阅读 · 0 评论 -
牛客练习赛-树(染色dp)
牛客练习赛-树(染色dp)(以后刷题还是多总结,排版就丑一点了)题目描述链接:https://ac.nowcoder.com/acm/contest/2/B来源:牛客网shy有一颗树,树有n个结点。有k种不同颜色的染料给树染色。一个染色方案是合法的,当且仅当对于所有相同颜色的点对(x,y),x到y的路径上的所有点的颜色都要与x和y相同。请统计方案数。输入描述:第一行两个整数n,k代表点数和颜色数;接下来n-1行,每行两个整数x,y表示x与y之间存在一条边;输出描述:输出一个整数表示方案数原创 2022-05-07 16:35:48 · 231 阅读 · 0 评论 -
【字节跳动笔试题】最大连续的相同字符的子串的长度
【字节跳动笔试题】最大连续的相同字符的子串的长度原题OJ描述有一个仅包含’a’和’b’两种字符的字符串s,长度为n,每次操作可以把一个字符做一次转换(把一个’a’设置为’b’,或者把一个’b’置成’a’);但是操作的次数有上限m,问在有限的操作数范围内,能够得到最大连续的相同字符的子串的长度是多少。输入描述:第一行两个整数 n , m (1<=m<=n<=50000),第二行为长度为n且只包含’a’和’b’的字符串s。输出描述:输出在操作次数不超过 m 的情况下,能够得到的原创 2022-02-24 00:09:05 · 337 阅读 · 0 评论 -
【金山面试题】三次字符
【金山面试题】三次字符描述给定一个英文字符串(包括空格和换行),请找出该字符串中首次出现三次的英文字母(字符需区分大小写) 。如果不存在则输出-1;输入描述:输入一个字符串,可包含数字、字母,长度不超过106 个字符输出描述:输出第一个出现三次的英文字母,不存在则输出“-1”输入例子1:i love Kingsoft Office输出例子1:f输入例子2:I love KingsoFt Office输出例子2:-1思路这个题一看就知道是用的hash,但就是死活通不过。后来注原创 2022-02-22 00:25:50 · 878 阅读 · 0 评论 -
【LeetCode306】累加数
【LeetCode306】累加数leetcode306.累加数题目描述累加数 是一个字符串,组成它的数字可以形成累加序列。一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。给你一个只包含数字 ‘0’-‘9’ 的字符串,编写一个算法来判断给定输入是否是 累加数 。如果是,返回 true ;否则,返回 false 。说明:累加序列里的数 不会 以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。示例 1:原创 2022-01-11 16:43:38 · 274 阅读 · 0 评论 -
【LeetCode42】接雨水
【LeetCode42】接雨水leetcode42.接雨水题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9解题思路这是一道h原创 2021-12-31 17:44:59 · 88 阅读 · 0 评论 -
【LeetCode】109. 有序链表转换二叉搜索树
【LeetCode】109. 有序链表转换二叉搜索树文章目录【LeetCode】109. 有序链表转换二叉搜索树题目描述解题思路代码总结题目描述给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。解题思路很多人一来看到平衡二叉树的要求,第一反应应该还是使用旋转的思路。但二叉树类题其实在解决时一般依靠递归解。此题类似于二叉堆的排序,由于元素是线性有序的,因此只要确定中间节点再递归建树即原创 2020-10-08 19:23:20 · 114 阅读 · 0 评论 -
【剑指Offer】重建二叉树
reConstructBinaryTree# 【剑指Offer】重建二叉树文章目录题目描述解题思路代码总结题目描述用给定的数组pre[]和in[]来分别表示二叉树的先序遍历序列和后序遍历序列,要求对二叉树进行还原并输出。此外,二叉树的定义也已经给出(不同的语言采取的定义不同,此处以Java为例)public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { v原创 2020-10-02 20:44:20 · 162 阅读 · 0 评论 -
【LeetCode】22.括号生成
【LeetCode】22.括号生成文章目录【LeetCode】22.括号生成题目描述题解代码总结题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]题解熟悉分治算法的都知道,此题...原创 2020-03-06 15:39:25 · 132 阅读 · 0 评论 -
【LeetCode】257.二叉树的所有路径
【LeetCode】257.二叉树的所有路径文章目录【LeetCode】257.二叉树的所有路径题目描述解题思路代码总结题目描述给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \2 3 \ 5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: ...原创 2020-03-06 15:01:34 · 139 阅读 · 0 评论 -
【PTA】6-9二叉树的遍历
【PTA】6-9二叉树的遍历文章目录【PTA】6-9二叉树的遍历题目描述解题思路代码总结题目描述要求分别实现二叉树的四种遍历即前中后以及层序遍历接口定义如下void InorderTraversal( BinTree BT );void PreorderTraversal( BinTree BT );void PostorderTraversal( BinTree BT );vo...原创 2020-03-04 21:35:35 · 405 阅读 · 0 评论 -
【PTA】数据结构6.1单链表逆转
【PTA】数据结构6.1单链表逆转文章目录【PTA】数据结构6.1单链表逆转题目描述题解代码总结题目描述本题要求实现一个函数,将给定的单链表逆转。函数接口定义:List Reverse( List L );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数...原创 2020-03-04 21:01:03 · 550 阅读 · 0 评论 -
【LeetCode】994.腐烂的橘子
【LeetCode】994.腐烂的橘子文章目录【LeetCode】994.腐烂的橘子题目描述解题思路代码总结题目描述在给定的网格中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。...原创 2020-03-04 20:34:42 · 153 阅读 · 0 评论 -
【LeetCode】200.岛屿数量
【LeetCode】200.岛屿数量文章目录【LeetCode】200.岛屿数量题目描述题解代码总结题目描述给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。例如:输入:11110110101100000000输出: 1题解如果接触过ACM的应该...原创 2020-02-27 11:51:42 · 190 阅读 · 0 评论 -
【LeetCode】96.不同的二叉搜索树
【LeetCode】96.不同的二叉搜索树文章目录【LeetCode】96.不同的二叉搜索树题目描述解题思路代码总结题目描述(简单说下)给出n,求1-n的所有数字可以组成的二叉搜索树的种类解题思路才看到这个题就想起了上离散数学时候的情景,直到期末考那一刻才明白:卧槽,同构树不就是有机化学中的同分异构体么!这题有两种解法:一:接触过ACM或者数论的应该对卡特兰数有了解。此题刚好是一...原创 2020-02-24 22:53:00 · 141 阅读 · 0 评论 -
【LeetCode 24】两两交换链表中的节点
【LeetCode 24】两两交换链表中的节点文章目录【LeetCode 24】两两交换链表中的节点题目描述思路代码总结题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。例如:给定 1->2->3->4, 你应该返回 2->1->4->3.思路才看到题,想到的是一种传统...原创 2020-02-24 20:24:17 · 119 阅读 · 0 评论 -
【LeetCode 701】二叉搜索树的插入操作
【LeetCode 701】二叉搜索树的插入操作文章目录【LeetCode 701】二叉搜索树的插入操作题目描述:题目分析题解代码总结题目描述:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。题目分析...原创 2020-02-19 17:27:11 · 154 阅读 · 0 评论 -
C++课设—拓补排序的实现
C++课设—拓补排序的实现文章目录C++课设—拓补排序的实现简介代码简介给大二的自动化专业《软件技术基础》课程写的C++程序,采取了菜单式的设计模式,可从文件中读入邻接矩阵的元素数据,之后再根据出入度判断是否为AOV网。若是AOV网,则输出拓补排序后的结果。代码#include<iostream>#include<cstdio>#include<cstr...原创 2019-12-21 21:17:02 · 320 阅读 · 0 评论 -
字符串—马拉车算法(求最长回文串)
字符串—马拉车算法(求最长回文串)作为一个字符串渣渣,对于我来说,看见此类问题总会忍不住虎躯一震。。。初次见到“求最长回文串”问题时,我脑子里无非蹦出两个想法:1.用栈的结构来存储,然后出栈看是否满足回文串的条件(回文串定义相信大家都知道,在此就不啰嗦了);2.看见最长,立马想到用动态规划的思想,写出状态转移方程,找出最优子结构。其实这两个思路合并起来是否可以解决问题——答案是肯定的。但这...原创 2019-11-24 20:25:30 · 229 阅读 · 0 评论 -
高级数据结构-优先队列(堆)—(1)二叉堆
通俗讲解优先队列(堆)—(1)二叉堆文章目录通俗讲解优先队列(堆)—(1)二叉堆1.导入——什么叫优先队列(堆)2.二叉堆2.1二叉堆的性质2.2二叉堆的操作2.2.1堆的声明2.2.2节点的插入1.导入——什么叫优先队列(堆)我们都知道,在计算机的操作系统中,进程块(PCB)都是按队列的方式存储起来,排好队一个个地等待CPU运行。可时常会出现由于某某进程更加“高级”,即更加急于去被运行,...原创 2019-11-20 16:47:46 · 222 阅读 · 0 评论 -
理解数据结构——图的DFS和BFS
理解数据结构——图的DFS和BFS在图算法和搜索算法中,dfs和bfs是常见的两种遍历方式。且二者常常千变万化,出现于各类题型,如最短路径、树形dp中,那么我们该如何理解这两种算法思想呢。1.DFS 深度优先搜索顾名思义,即当我们对某个树or图进行搜索时,一条道走到黑,“不撞南墙不回头”。dfs总是沿着某个最深的方向来进行搜索,直到无路可走。假设有下面这么一个树形结构(此处用树型结构,是为...原创 2019-11-03 23:15:10 · 4512 阅读 · 3 评论