可能很多人都见过一些图像处理的软件,可以把一副图片“淡出”显式出来,达到这种效果一般需要在屏幕上随机的绘制像素,最后填充满整个的显式区域。通常的实现方法是这样的,假设我们有一个随机函数f(N),可以获取1-N之间的任一个整数,并且保证满足均匀分布的要求,那么利用这个f(N)做一个循环,很容易地就可以达到前面所述的效果。现在的问题是这样的,对于一个N*N的屏幕区域,利用这样的算法来绘制图片,它的复杂度是多少?怎么改进它,降低复杂度?
btw,真的很佩服微软,出的题目都是有很强的应用背景和实际意义,又要求面试者把几方面的知识结合起来灵活运用,临时准备是完全没有用的,靠的还是平时的积累,以及做程序员的一点点“直觉”。
欢迎大家通过comment来发表意见,过段时间我把答案公布。