File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Time: O(n^2)
2
+ # Space: O(n)
3
+
4
+ class Solution (object ):
5
+ def splitArray (self , nums ):
6
+ """
7
+ :type nums: List[int]
8
+ :rtype: bool
9
+ """
10
+ if len (nums ) < 7 :
11
+ return False
12
+
13
+ accumulated_sum = [0 ] * len (nums )
14
+ accumulated_sum [0 ] = nums [0 ]
15
+ for i in xrange (1 , len (nums )):
16
+ accumulated_sum [i ] = accumulated_sum [i - 1 ] + nums [i ]
17
+ for j in xrange (3 , len (nums )- 3 ):
18
+ lookup = set ()
19
+ for i in xrange (1 , j - 1 ):
20
+ if accumulated_sum [i - 1 ] == accumulated_sum [j - 1 ] - accumulated_sum [i ]:
21
+ lookup .add (accumulated_sum [i - 1 ])
22
+ for k in xrange (j + 2 , len (nums )- 1 ):
23
+ if accumulated_sum [- 1 ] - accumulated_sum [k ] == accumulated_sum [k - 1 ] - accumulated_sum [j ] and \
24
+ accumulated_sum [k - 1 ] - accumulated_sum [j ] in lookup :
25
+ return True
26
+ return False
You can’t perform that action at this time.
0 commit comments