解析:
O(n^2)枚举自然都能能想到。
给个O(n)的想法。
以每个i为起点,只希望覆盖更多的点。
注意每次循环best和i都只增不减,尽管两个循环,复杂度还是O(n)的。
int calculate(int *a, int n, int L) { int best = 0; for (int i = 0; i + best < n; ++i) { for (; (i + best < n) && (a[i + best] - a[i] <= L); ++best) ; } return best; }