ソースを参照

fix high mem bug

Guillaume Koenig 7 年 前
コミット
426cc137d9
共有1 個のファイルを変更した4 個の追加5 個の削除を含む
  1. 4 5
      main.go

+ 4 - 5
main.go

@@ -114,9 +114,9 @@ func (c *Car) distanceTo(x, y int) int {
114 114
 }
115 115
 
116 116
 func Choose(c *Car) *Ride {
117
-	bestRide := Rides[0]
118
-	bestLenOfRide := Rides[0].length()
119
-	bestTotal := c.distanceTo(Rides[0].a, Rides[0].b) + bestLenOfRide
117
+	var bestRide *Ride
118
+	bestLenOfRide := 0
119
+	bestTotal := 0
120 120
 	for _, r := range Rides[1:] {
121 121
 		if r.used {
122 122
 			continue
@@ -126,12 +126,11 @@ func Choose(c *Car) *Ride {
126 126
 		}
127 127
 		lenOfRide := r.length()
128 128
 		total := c.distanceTo(r.a, r.b) + lenOfRide
129
-		if lenOfRide*bestTotal < total*bestLenOfRide {
129
+		if bestRide == nil || lenOfRide*bestTotal < total*bestLenOfRide {
130 130
 			bestLenOfRide = lenOfRide
131 131
 			bestTotal = total
132 132
 			bestRide = r
133 133
 		}
134
-		return r
135 134
 	}
136 135
 	return bestRide
137 136
 }