Предположим, у нас есть массив A размером n, а n несортированных чисел с плавающей запятой. Мы хотим найти непрерывный подмассив B такой, что B суммирует с целым числом. Предположим, что мы можем использовать функцию пола по стоимости O (1). Обратите внимание, что нам нужно вернуть B, если такой B существует. Моя идея:
rsum = running sum of A(i.e. rsum[i]=A[1]+A[2]+...+A[i])
for i from 1 to n:
for j from i to n:
e = rsum[j]-rsum[i]+A[i]
if e==floor(e)
return A[i....j]
return "no such subarray"
Это алгоритм O (n ^ 2), есть ли способ сделать это в o (n ^ 2)?