邓心一 6 rokov pred
rodič
commit
bd4cb7ea0a
1 zmenil súbory, kde vykonal 29 pridanie a 1 odobranie
  1. 29 1
      medium/332.reconstruct-itinerary.go

+ 29 - 1
medium/332.reconstruct-itinerary.go

@@ -1,3 +1,31 @@
+type StringSlice []string
+
+func (ss StringSlice) Len() int { return len(ss) }
+func (ss StringSlice) Less(i, j int) bool { return ss[i] < ss[j] }
+func (ss StringSlice) Swap(i, j int) { ss[i], ss[j] = ss[j], ss[i] }
+
+func (ss *StringSlice) Push(x interface{}) {
+	*ss = append(*ss, x.(string))
+}
+
+func (ss *StringSlice) Pop() interface{} {
+	top := (*ss)[ss.Len()-1]
+	*ss = (*ss)[:ss.Len()-1]
+	return top
+}
+
 func findItinerary(tickets [][]string) []string {
-	
+	idx := make(map[string]int)
+	adj := make([][]StringSlice, 0)
+	for i := 0; i < len(tickets); i++ {
+		if id, ok := idx[tickets[i][0]]; !ok {
+			id = len(idx)
+			adj[id] = []StringSlice{tickets[i][1]}
+			idx[tickets[i][0]] = id
+		} else {
+			heap.Push(&adj[id], tickets[i][1])
+		}
+	}
+	return []string{}
 }
+