| 123456789101112131415161718 | 
							- func numberOfArithmeticSlices(A []int) (res int) {
 
- 	n := len(A)
 
- 	if n <= 2 {
 
- 		return 0
 
- 	}
 
- 	diff, cnt := A[1]-A[0], 2
 
- 	for i := 2; i < n; i++ {
 
- 		if A[i]-A[i-1] == diff {
 
- 			cnt++
 
- 		} else {
 
- 			// 1 + ... + cnt-2
 
- 			res += (cnt - 1) * (cnt - 2) / 2
 
- 			diff = A[i] - A[i-1]
 
- 			cnt = 2
 
- 		}
 
- 	}
 
- 	return res + (cnt-1)*(cnt-2)/2
 
- }
 
 
  |