【发布时间】:2018-08-21 11:20:55
【问题描述】:
Input : arr[] = {5, 4, 4, 5, 1, 3}
Output : 12
下面是通过生成所有子数组的 O(n^2) 方法:-
These are possible subarrays with odd sum.
1) {5} Sum = 5 (At index 0)
2) {5, 4} Sum = 9
3) {5, 4, 4} Sum = 13
4) {5, 4, 4, 5, 1} Sum = 19
5) {4, 4, 5} Sum = 13
6) {4, 4, 5, 1, 3} Sum = 17
7) {4, 5} Sum = 9
8) {4, 5, 1, 3} Sum = 13
9) {5} Sum = 5 (At index 3)
10) {5, 1, 3} Sum = 9
11) {1} Sum = 1
12) {3} Sum = 3
但是如何在 O(n) 中解决这个问题?
【问题讨论】:
-
有一个 O(n) 算法就在您粘贴上面的内容 (geeksforgeeks.org/number-of-subarrays-with-odd-sum)
-
我知道@SudhanshuVishnoi,但我想了解 O(n) 解决方案的工作原理。