
The first for loop creates array sum in ascending order, so that we have a way to query range array sum using constant time.

Then we are looking for a range
0 ~ i1
andk+1 ~ n1
which have equal range sum. 
Finally I am looking for a splitter
j
that splits the range betweeni + 1
andk  1
so that the sum rangei+1 ~ j1
andj+1 ~ k1
are equal, we also need to check if this sum range equal to either0 ~ i1
ork+1 ~ n1
. Then we are done.
class Solution(object):
def splitArray(self, nums):
for i in xrange(1, len(nums)):
nums[i] += nums[i  1]
for i in xrange(len(nums)  6):
for k in xrange(i + 6, len(nums)):
if nums[i] == nums[1]  nums[k  1]:
for j in xrange(i + 2, k  1):
if nums[j  1]  nums[i + 1] == nums[k  2]  nums[j] == nums[i]:
return True
return False