【发布时间】:2021-02-17 15:51:54
【问题描述】:
我得到一个大小为 n 的正整数数组。对于数组的每个索引 i,我想找到最大的索引 j,使得从索引 i 到 j 的数组元素之和小于或等于某个整数 K。我只能想到蛮力 O (n^2) 方式。我想知道是否有更有效的方法?
【问题讨论】:
-
我想到了对范围 i 到 n-1 的二进制搜索,假设数组已排序。我相信这会给你 nlog(n)。
-
啊,是的,正如@Andrew Vershinin 所指出的,我们需要找到前缀总和,然后进行二分搜索得到 O(nlgn)。
-
@gateway2745 请查看正确答案
-
很好!..从技术上讲,以前的答案并不正确,所以也许可以更改第一行?