摘要: 问题描述 本题任务是维护一条非递减的链表,初始长度为 0,记这条链表为主链表。对主链表做 N 次操作,操作分两种:1 k a1 a2 … ak,表示一条长度为 k 且非递减的链表,需要将这条链表合并到主链表上,保持合并后的链表仍然是非递减的。2 x,表示删除主链表中所有值为 x 的节点, 不保证链表 阅读全文
posted @ 2017-10-26 00:19 cbattle 阅读(1142) 评论(0) 推荐(0) 编辑
摘要: 问题描述 在快速排序过程中, 每次会找一个划分值, 将小于划分值的放到其左边, 大于划分值的放右边, 然后再依次递归左右两边, 对子序列进行同样的操作, 直到子序列为空则停止操作。最后就得到了有序的序列。如何找到一个合适的划分值? 小茗同学也不知道, 所以他用了随机算法。 小茗同学的运气很好, 每次 阅读全文
posted @ 2017-10-26 00:15 cbattle 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 问题描述 给定两个序列 a b,序列 a 原先是一个单调递增的正数序列,但是由于某些原因,使得序列乱序了,并且一些数丢失了(用 0 表示)。经过数据恢复后,找到了正数序列 b ,且序列 a 中 0 的个数等于序列 b 的个数,打算使用序列 b 恢复序列 a 。对于序列 a 来说,我们可以交换两个位置 阅读全文
posted @ 2017-10-26 00:13 cbattle 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 问题描述 给定一个 1~N 的排列 P,即 1 到 N 中的每个数在 P 都只出现一次。 现在要对排列 P 进行冒泡排序,代码如下:for (int i = 1; i <= N; ++i)for (int j = N, t; j > i; ‐‐j)if (P[j ‐ 1] > P[j])t = P[ 阅读全文
posted @ 2017-10-26 00:01 cbattle 阅读(303) 评论(0) 推荐(1) 编辑