Skip to content

Commit 8b239a6

Browse files
committed
go: cycle length queries in a tree
1 parent 841406d commit 8b239a6

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

go/cycle-length-queries-in-a-tree.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import "math"
4+
5+
func cycleLengthQueries(n int, queries [][]int) []int {
6+
var answers []int
7+
for _, query := range queries {
8+
a := query[0]
9+
b := query[1]
10+
x1 := int(math.Log2(float64(a)))
11+
x2 := int(math.Log2(float64(b)))
12+
13+
count := int(math.Abs(float64(x2 - x1)))
14+
if a > b {
15+
a = int(a / int(math.Pow(2, float64(count))))
16+
} else {
17+
b = int(b / int(math.Pow(2, float64(count))))
18+
}
19+
20+
for a != b {
21+
a = int(a / 2)
22+
b = int(b / 2)
23+
count += 2
24+
}
25+
answers = append(answers, count+1)
26+
}
27+
return answers
28+
}

0 commit comments

Comments
 (0)