算法
蹦蹦跳跳小米粒
努力奋斗的游戏coder
展开
-
C++实现单向链表的逆向打印
本文章记录了实现链表的逆向打印的方法。首先一个比较简单的实现方法是,将链表的所有指针全部反向,这种方法是不值得推荐的,因为打印操作一般是一个只读的过程,很少可以修改要打印的内容。所以在这里我们记录一下比较好的一些实现方法。首先我们可以考虑,反向输出链表的过程实际上是一个先入后出的过程,从头到尾遍历链表,先读到的内容是后打印的。这就让我们想到了stack这一数据结构,我们可以在每读取到一个节点时...原创 2019-07-07 00:35:43 · 1177 阅读 · 0 评论 -
[编程题]等差数列
题目描述如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列输入描述:输入...原创 2019-08-03 21:50:14 · 963 阅读 · 0 评论 -
[编程题]疯狂队列
题目描述小易老师是非常严厉的,它会要求所有学生在进入教室前都排成一列,并且他要求学生按照身高不递减的顺序排列。有一次,n个学生在列队的时候,小易老师正好去卫生间了。学生们终于有机会反击了,于是学生们决定来一次疯狂的队列,他们定义一个队列的疯狂值为每对相邻排列学生身高差的绝对值总和。由于按照身高顺序排列的队列的疯狂值是最小的,他们当然决定按照疯狂值最大的顺序来进行列队。现在给出n个学生的身高,请...原创 2019-08-03 20:28:02 · 152 阅读 · 0 评论 -
[编程题]六一儿童节
题目描述六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。输入描述:第一行:n,表示h数组元素个数 第二行:n...原创 2019-08-03 19:28:29 · 979 阅读 · 0 评论 -
[编程题]交错01串
题目描述如果一个01串任意两个相邻位置的字符都是不一样的,我们就叫这个01串为交错01串。例如: "1","10101","0101010"都是交错01串。小易现在有一个01串s,小易想找出一个最长的连续子串,并且这个子串是一个交错01串。小易需要你帮帮忙求出最长的这样的子串的长度是多少。输入描述:输入包括字符串s,s的长度length(1 ≤ length ≤ 50),字符串中只...原创 2019-08-03 18:58:14 · 1152 阅读 · 0 评论 -
数字序列第n位的值
题目描述有一个无限长的数字序列1,2,2,3,3,3,4,4,4,4,5,5,5,5,5。。。(数字序列从1开始递增,且数字k在该序列中正好出现k次),求第n项是多少输入描述:输入为一个整数n输出描述:输出一个整数,即第n项的值示例1输入4输出3说明备注:如:输入为3,有序数列第3项的值为2,则输出为2#inclu...原创 2019-07-20 15:20:35 · 807 阅读 · 0 评论 -
C++ 游戏海报
题目描述小明有26种游戏海报,用小写字母"a"到"z"表示。小明会把游戏海报装订成册(可能有重复的海报),册子可以用一个字符串来表示,每个字符就表示对应的海报,例如abcdea。小明现在想做一些“特别版”,然后卖掉。特别版就是会从所有海报(26种)中随机选一张,加入到册子的任意一个位置。那现在小明手里已经有一种海报册子,再插入一张新的海报后,他一共可以组成多少不同的海报册子呢?输入描述...原创 2019-07-20 13:38:50 · 397 阅读 · 0 评论 -
C++ 表达式求值
题目描述今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:1+2*3=71*(2+3)=51*2*3=6(1+2)*3=9现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号,能够获得的最大值。输入描述:一行三个数a,b,c (1 <= a, b,...原创 2019-07-20 13:19:46 · 764 阅读 · 0 评论 -
日常练习知识总结(一)
1.合并分E-R图各个局部应用所面向的问题不同,各个子系统的E-R图之间必定会存在许多不一致的地方,称之为冲突。子系统E-R图之间的冲突主要有三类:①属性冲突②命名冲突③结构冲突①属性冲突属性域冲突,即属性值的类型、取值范围或取值集合不同。例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。年龄,某些部门以出生日期形式表示职工的年龄,而另一些部门用整数表示职工的年龄...原创 2019-07-19 23:49:13 · 476 阅读 · 0 评论 -
C++实现根据二叉树的前序遍历与中序遍历构建二叉树
在记录题目解法之前,首先记录一下有关二叉树遍历的相关知识。二叉树的遍历分为前序遍历,中序遍历和后序遍历三种遍历方法。前序遍历的顺序为当前节点->左子节点->右子节点的顺序,中序遍历的顺序为左子节点->当前节点->右子节点的顺序,后序遍历的顺序是左子节点->右子节点->当前节点的顺序。例如如下二叉树:前序遍历的结果为: 1,2,4,7,3,4,5,8中...原创 2019-07-07 12:24:49 · 8958 阅读 · 4 评论 -
[编程题]操作序列
题目描述小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:1、将a_i放入b序列的末尾2、逆置b序列小易需要你计算输出操作n次之后的b序列。输入描述:输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。输出...原创 2019-08-03 22:08:04 · 646 阅读 · 0 评论