2023-07-04:给定一个数组A, 把它分成两个数组B和C
对于数组A每个i位置的数来说,
A[i] = B[i] + C[i]
也就是一个数字分成两份,然后各自进入B和C
要求B[i], C[i] >= 1
最终B数组要求从左到右不能降序
最终C数组要求从左到右不能升序
比如
A = { 5, 4, 5 }
可以分成
B = { 2, 2, 3 }
C = { 3, 2, 2 }
这是一种有效的划分
返回有多少种有效的划分方式
1 <= A的长度 <= 10^7
1 <= A[i] <= 10^7
最终结果可能很大,请返回对1000000007取余的结果。
国外算法面经帖子上的题。
答案见文章,全网同名。
相似问题