mirror of
https://github.com/onyx-and-iris/aoc2023.git
synced 2026-04-19 19:43:29 +00:00
Compare commits
3 Commits
9ba5ad695e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| cacd140961 | |||
| 0f357df19d | |||
| 5b225a9166 |
@@ -16,8 +16,9 @@ type bound struct {
|
||||
}
|
||||
|
||||
// newBound returns a bound type
|
||||
// it defines an open ended interval
|
||||
func newBound(lower, upper int) bound {
|
||||
return bound{lower: lower, upper: upper}
|
||||
return bound{lower: lower, upper: upper - 1}
|
||||
}
|
||||
|
||||
// nextTransform recursively calculates each new set of seed ranges for each set of data in dataMap
|
||||
@@ -42,10 +43,10 @@ func nextTransform(i int, in []bound) []bound {
|
||||
|
||||
// append unmatched portions of seed range back into queue
|
||||
if start > r.lower {
|
||||
q.enqueue(newBound(r.lower, start-1))
|
||||
q.enqueue(newBound(r.lower, start))
|
||||
}
|
||||
if r.upper > end {
|
||||
q.enqueue(newBound(end, r.upper-1))
|
||||
q.enqueue(newBound(end, r.upper))
|
||||
}
|
||||
return true
|
||||
}
|
||||
@@ -70,7 +71,7 @@ func two(lines []string) int {
|
||||
go func(i int) {
|
||||
defer wg.Done()
|
||||
mu.Lock()
|
||||
seedRanges = append(seedRanges, nextTransform(0, []bound{newBound(seeds[i], seeds[i]+seeds[i+1]-1)})...)
|
||||
seedRanges = append(seedRanges, nextTransform(0, []bound{newBound(seeds[i], seeds[i]+seeds[i+1])})...)
|
||||
mu.Unlock()
|
||||
}(i)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user