摘要: 队列是一种特殊的表,只在表首进行删除,只在表尾进行插入,按照先进先出原则操作(First In First Out),又称为FIFO表; 队列的指针实现代码: 用循环数组实现队列代码: 循环数组的形状如下: 思想:通过游标指向的变化,来判断队列是否已经满或者空; 栈在STL中有直接的函数可以使用,队 阅读全文
posted @ 2017-12-19 13:44 heihuifei 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 因为不太好复制,我就直接截图了, "题目链接" ;题目大致的意思是:给一串数字,然后要你求出每k长度的连续子序列中的最大值以及最小值并输出;这题就是一个最简单的运用单调队列方法解题的例子。 解题思路:通过单调队列,分别维护一个递增以及递减的数列以求得最小值和最大值(增减对应),其中用到了数组的游标删 阅读全文
posted @ 2017-12-19 13:32 heihuifei 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 栈是一种特殊的表,只在表首进行插入和删除操作,表首称之为栈顶,表尾称为栈底;栈的核心原则是先进后出,简称Last In First Out(LIFO表);常用的运算有:1、是否为空栈判断;2、栈是否满判断;3、返回栈顶元素;4、插入栈顶元素;5、删除栈顶元素; 用数组实现栈代码: 栈的指针实现代码: 阅读全文
posted @ 2017-12-15 19:24 heihuifei 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 第一章(算法复杂性以及数据类型): 一、使用自定义数据类型一般需要初始化函数。Init(Item a,Item b){} 第二章(线性表) 一、用数组实现表:应该将表定义为一个自定义的数据类型,其中含有数据成员n和maxsize和元素数组table,用n记录表长,表为空时n=0,maxsize表示表 阅读全文
posted @ 2017-12-15 15:27 heihuifei 阅读(951) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 小z为竞选他们村的村长,他承诺在这个村上建其地下公路来方便大家出行。 但这个地下公路有一个奇怪的规定,每条公路上只能使用有限种交通工具,从出 发点到终点只能使用一种交通工具。现在小 z想知道从某点到另一点可以采用 多少种交通工具。 为简化起见,为地下公路的 N个点编号,分别为 0~N 1 阅读全文
posted @ 2017-12-12 20:59 heihuifei 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 在慕课上面简单学习了一下java语言的用法 简单的用法总结记录一下。 代码(学习输入,输出): 代码(学习数据类型及用法细节): import java.util.Scanner; public class Java_Second_Compare { public static void main( 阅读全文
posted @ 2017-12-08 13:29 heihuifei 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 实验任务 给你 n 个三角形,每个三角形有一个优雅值, 然后给出一个询问,每次询问一个三角形, 求与询问的三角形,相似的三角形中的优雅值最大是多少。 ★数据输入 第一行输入包括 n 一个数字, 接下来 n 行,每行四个整数数字 a,b,c,val 表示三条边,以及优美值 之后输入一个数字 m 之后 阅读全文
posted @ 2017-12-04 22:02 heihuifei 阅读(1127) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 录入 n 个学生的成绩,并查询。 ★数据输入 第一行输入包括 n、m(1 include include include using namespace std; int a[500001]; int main() { int i, n, m, x, j, sum, len; strin 阅读全文
posted @ 2017-11-20 20:55 heihuifei 阅读(382) 评论(0) 推荐(0) 编辑
摘要: Map原理简单理解: 通过一种特殊的红黑树(自平衡的二叉查找树),由于红黑树也是二叉查找树,它们当中每一个节点都的比较值都必须大于或等于在它的左子树中的所有节点,并且小于或等于在它的右子树中的所有节点。这确保红黑树运作时能够快速的在树中查找给定的值。它是复杂的,但它的操作有着良好的最坏情况运行时间, 阅读全文
posted @ 2017-11-13 23:34 heihuifei 阅读(142) 评论(0) 推荐(0) 编辑
摘要: STL之vector原理(个人简单理解) 新增元素:vector通过一个连续的数组存放元素,如果已有集合已满,在新增数据的时候,就要分配一块更大的内存,将原来的数据复制过来,释放之前的内存,在插入新增的元素。 插入新数据可以在最后插入(push_back或者其他的插入方式)也可以通过迭代器在任何位置 阅读全文
posted @ 2017-11-13 23:02 heihuifei 阅读(136) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 给定一个 1~N 的排列 P,即 1 到 N 中的每个数在 P 都只出现一次。 现在要 对排列 P 进行冒泡排序,代码如下: for (int i = 1; i i; ‐‐j) if (P[j ‐ 1] P[j]) t = P[j], P[j] = P[j ‐ 1], P[j ‐ 1] 阅读全文
posted @ 2017-11-13 00:13 heihuifei 阅读(366) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 给定两个序列 a b,序列 a 原先是一个单调递增的正数序列,但是由于某些 原因,使得序列乱序了,并且一些数丢失了(用 0 表示)。经过数据恢复后,找 到了正数序列 b ,且序列 a 中 0 的个数等于序列 b 的个数,打算使用序列 b 恢 复序列 a 。 对于序列 a 来说,我们可以交 阅读全文
posted @ 2017-11-11 13:40 heihuifei 阅读(246) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 小 F 很爱打怪,今天因为系统 bug,他提前得知了 n 只怪的出现顺序以及击 倒每只怪得到的成就值 ai。设第一只怪出现的时间为第 1 秒,这个游戏每过 1 秒 钟出现一只新怪且没被击倒的旧怪消失。小 F 决定发动一次技能,他的技能最多 维持 k 秒,他希望获得最大的成就值,请你帮他计 阅读全文
posted @ 2017-11-11 13:24 heihuifei 阅读(1107) 评论(1) 推荐(0) 编辑
摘要: 寻找幸运数字 ★实验任务 给出两个已按升序排列的数组 a[1..n],b[1..m],如果存在 i,j,使得 a[i]+b[j]==k,我们便说已找到幸运值。请你判断能不能找到幸运值。 ★数据输入 输入第一行为正整数 n,m,k。(1 include include include using na 阅读全文
posted @ 2017-11-10 11:50 heihuifei 阅读(616) 评论(0) 推荐(0) 编辑
摘要: ★实验任务 顾名思义,互质序列是满足序列元素的 gcd 为 1 的序列。比如[1,2,3], [4,7,8],都是互质序列。[3,6,9]不是互质序列。现在并不要求你找出一个互质 序列,那样太简单了!真正的问题描述是:给定一个序列,删除其中一个元素使 得剩下元素的 gcd 最大,输出这个 gcd。 阅读全文
posted @ 2017-11-10 11:27 heihuifei 阅读(820) 评论(0) 推荐(1) 编辑