Given an array A that is a permutation of n numbers [1-n]. Find the number of subarrarys S that meets the following condition max(S) — min(S) = length(S) — 1.

Example 1:

Input: [4, 3, 1, 2, 5] Output: 10 Explanation: subarrays that meets the condition are [4] [3] [1] [2] [5] [4 3] [1 2] [3 1 2] [4 3 1 2] [4 3 1 2 5]

There are 10 subarray that meets the condition, so the answer should be 10.

Is there a better than O(n^2) solution?

https://codeforces.com/blog/entry/70503?locale=en

Can you please specify the source?

Google Interview

This problem is being asked a record third time

you should for every number i from 1 to n calculate that:

And then get sum of all this calculation.

for every i you should store in an array D that:

D[i] = 0!+1!+2!+....+i!

how can you calculate an array D?

And then:

How have you come up with this thing?

I am not getting correct answer with this approach

(n-i)!*(i+1)!*(n-i) where i should be from 0 to n-1 will give you the correct answer for n=1 ->1 n=2 ->6 n=3 ->32 n=4 ->180 ans so on