mirror of
https://github.com/onyx-and-iris/aoc2023.git
synced 2026-04-20 03:43:30 +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
|
// newBound returns a bound type
|
||||||
|
// it defines an open ended interval
|
||||||
func newBound(lower, upper int) bound {
|
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
|
// 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
|
// append unmatched portions of seed range back into queue
|
||||||
if start > r.lower {
|
if start > r.lower {
|
||||||
q.enqueue(newBound(r.lower, start-1))
|
q.enqueue(newBound(r.lower, start))
|
||||||
}
|
}
|
||||||
if r.upper > end {
|
if r.upper > end {
|
||||||
q.enqueue(newBound(end, r.upper-1))
|
q.enqueue(newBound(end, r.upper))
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
@@ -70,7 +71,7 @@ func two(lines []string) int {
|
|||||||
go func(i int) {
|
go func(i int) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
mu.Lock()
|
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()
|
mu.Unlock()
|
||||||
}(i)
|
}(i)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user