在递归章节中,我遇到了一个“在数组中找到最大值”的问题。大家都知道,我必须用递归的观点来解决这个问题,实际上,我已经用这个算法解决了这个问题; value = largestValue(anArray, first + 1, last);return value;
但是,在我阅读了问题的描述之后,有人说‘您必须用多路径递归来解决这个问题为了更好的理解,我把
(作为某种优化,在注意到模式中的“某些东西”之后)For each window of size K in an array of size N, compute这里有一个简单的O(NK)算法,一个相当简单的O(nlogn)解决方案(甚至我都可以看到,使用一个堆)和一个O(N)解决方案,使用一个双端队列。这些原则似乎是基于“丢弃”无用的值,或查询一个区域来查找属性(最大值、累计和、最小值等)的原则。例如,要将一些O(N^2)算法转换为O(NlogN),有时您可以使用prior