摘要:
一、技术总结 这一题是关于堆的,主要学到的知识是使用深度遍历,遍历打印每一条路径,并且可以按照特定的顺序进行打印; 具体的dfs函数,对于堆而言,因为具备完全二叉树的特点,递归边界是index * 2 > n && index * 2 + 1, 同时会出现,按道理这时直接输出存储好的路径即可,但是因 阅读全文
摘要:
一、技术总结 这一题看起来好像要使用图的知识,其实不必,只需要将图存储下来即可,然后遍历每条边所对应的两个点看颜色是否相同,如果相同则不符合题目要求输出No,如果符合要求那么输出颜色的数量即可。 涉及到vector存储图的信息,以及set存储颜色的数量; 二、参考代码 #include<iostre 阅读全文
摘要:
一、技术总结 本题没有数据结构的具体知识,但是考查逻辑,也就按照题目中的要求进行运算最后输出结果; 但是处理的方式显得很重要,一个要点是,对于对于这种题目最好是将结果全部储存,然后再按需进行重新查询; 如果存在超时可以使用unordered_map;同时在编写排序算法的时候,cmp传参可以使用引用, 阅读全文
摘要:
一、技术总结 学会使用substr(start, num);函数,同时注意题目中的要求,例如可能会出现按照格式输出0004,就不能够用%d格式输出,即使使用也需要注意。 同时stoi函数。 二、参考代码 #include<iostream> #include<string> using namesp 阅读全文
摘要:
一、技术总结 二、参考代码 #include <iostream> #include <vector> #include <map> using namespace std; map<int, int> pos; vector<int> in, pre; void lca(int inl, int 阅读全文
摘要:
一、技术总结 这一题是考查旅行商问题,但不是传统意义上的遍历图,然后找最短路径之类的; 首先应该明确有四类,一类是不能够走通的,也就是在所给路径中,有相邻的两点存在不通的情况; 再就是所给路径走得通,但是不是旅行商问题,也就是第一个城市与最后一个城市不是同一个或者没有走完所有的城市; 然后就是旅行商 阅读全文
摘要:
一、技术总结 这一题主要学习到两个知识点,一个是stoi函数的使用,之前已经讲过了,可以将一个字符串转化为10进制的数字; 还有就是字符串string中insert函数的使用,可以str.insert(0, num, '0');意思是在下标为0处插入num个字符‘0’; 还有就是使用dowhile; 阅读全文
摘要:
一、技术总结 这一题样例也要看清楚,不然想当然也会出错。 是直接使用map<int, int>进行数据存储也就是映射,以为是一对一的关系,其实发现是多对多的关系;可以使用map<int, vector> mp,进行存储; 思路大致是首先使用mp存储好对应关系,然后再使用vector存储要运输的货物, 阅读全文
摘要:
一、技术总结 这一题考查的是逻辑题 主要题意是,给出一群人中,只有两个狼人,其余都是好人,且只有两个说谎的人,一个在两人中,一个在好人中,一个是狼人。要我们判断满足要求下,输出狼人; 使用数组v,存储每个人说说话情况; 解决方案是假设法,首先假设两个狼人的下标是i, j,然后i在1-n中找,那么剩下 阅读全文
摘要:
一、技术总结 这一题是关于堆排序的问题。 先理解啥是堆,也就是一棵完全二叉树,但是还有附加要求,如果满足每个结点的左右子树的结点值都小于自己称为大顶堆;如果是每个结点的左右子树值都大于自己,称为小顶堆。 所以解决该问题可以应用完全二叉树的一些知识点。 这一题是给出每棵树的层序遍历,这是满足结点下标是 阅读全文