邓心一 há 6 anos atrás
pai
commit
035a12dbc8
1 ficheiros alterados com 19 adições e 0 exclusões
  1. 19 0
      hard/446.arithmetic-slices-ii-subsequence.go

+ 19 - 0
hard/446.arithmetic-slices-ii-subsequence.go

@@ -0,0 +1,19 @@
+func numberOfArithmeticSlices(A []int) (cnt int) {
+	n := len(A)
+	if n < 3 {
+		return
+	}
+	dp := make([]map[int]int, n)
+	for i := 0; i < n; i++ {
+		dp[i] = make(map[int]int)
+	}
+	for i := 1; i < n; i++ {
+		for j := 0; j < i; j++ {
+			diff := A[i] - A[j]
+			inc := dp[j][diff] + 1
+			cnt += inc - 1
+			dp[i][diff] = dp[i][diff] + inc
+		}
+	}
+	return
+}