k个有序的数组:L1,L2,……,Lk,每一个长度为n,可以对该数组进行线性时间的预处理。然后回答如下询问:给出x,回答每个数组中第一个小于x的元素是什么?”
这一次,徐佑也确实感到了,题目难度的提升。
要是徐佑这些天没有学完这些门课程的话,估计是连题目都看不懂的。
徐佑首先想到的方法,是对于每个数组二分查找。
但这样的话,复杂度会非常高,达到了O(klogn)。
很快,徐佑便找到了另外的一个思路。
“如果用-Casg的话,就可以将复杂度降低到O(k+logn)了。”
所谓的-Casg,也就是分散层叠算法,可以对经典分块问题进行大大的优化。
按照这个思路,徐佑重新进行算法的构思,并很快整理出了一套全新的方案。
“这样一来,只要第一次使用二分,之后每次都是常数查找就可以了。”
完成了算法数据结构的编辑后,徐佑将自己的解法发送给了彭俊。
看见徐佑的答案,彭俊又是不禁连连点头。
“这小子,还真不是在跟我开玩笑。能做到这个水平,绝对是把这些课程都学透了的。”
这个时候,彭俊也不得不对徐佑的学习能力盛赞了起来。
彭俊并不知道,徐佑到底是如何在这短短的十天时间里,把几乎整个计算机本科阶段的
第136章 不,你的这条才是(2/5)