邓心一 6 vuotta sitten
vanhempi
commit
95f7309654
1 muutettua tiedostoa jossa 31 lisäystä ja 0 poistoa
  1. 31 0
      easy/697.degree-of-an-array.go

+ 31 - 0
easy/697.degree-of-an-array.go

@@ -0,0 +1,31 @@
+func findShortestSubArray(nums []int) int {
+	n := len(nums)
+	if n <= 1 {
+		return n
+	}
+	max := 0
+	var freq [50000]int
+	ans := make([]int, 0)
+	var beg, end [50000]int
+	for i, v := range nums {
+		if freq[v] == 0 {
+			beg[v] = i
+		}
+		freq[v]++
+		if max < freq[v] {
+			max = freq[v]
+			ans = []int{v}
+			end[v] = i
+		} else if max == freq[v] {
+			ans = append(ans, v)
+			end[v] = i
+		}
+	}
+	max = n
+	for _, v := range ans {
+		if l := end[v] - beg[v] + 1; l < max {
+			max = l
+		}
+	}
+	return max
+}