add new solutions

This commit is contained in:
kanna5 2026-01-05 16:48:03 +09:00
parent 886b5e0a8e
commit 67cad91898
Signed by: kkyy
GPG key ID: 06332F3965E9B0CF
47 changed files with 1549 additions and 1 deletions

View file

@ -0,0 +1,36 @@
package q437
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
func count(node *TreeNode, prefix []int, target int) int {
if node == nil {
return 0
}
if len(prefix) > 0 {
prefix = append(prefix, node.Val+prefix[len(prefix)-1])
} else {
prefix = append(prefix, node.Val)
}
cnt := 0
for i := range len(prefix) - 1 {
if prefix[len(prefix)-1]-prefix[i] == target {
cnt++
}
}
if prefix[len(prefix)-1] == target {
cnt++
}
return cnt + count(node.Left, prefix, target) + count(node.Right, prefix, target)
}
func pathSum(root *TreeNode, targetSum int) int {
return count(root, nil, targetSum)
}
var _ = pathSum

View file

@ -0,0 +1,39 @@
package q443
func compress(chars []byte) int {
seqLen := 0
char := chars[0]
p := 1
writeNumber := func(num int) {
i := 1
for ; i*10 <= num; i *= 10 {
}
for ; i > 0; i /= 10 {
chars[p] = byte(num/i) + '0'
p++
num %= i
}
}
for _, c := range chars {
if c == char {
seqLen++
} else {
char = c
if seqLen > 1 {
writeNumber(seqLen)
}
seqLen = 1
chars[p] = char
p++
}
}
if seqLen > 1 {
writeNumber(seqLen)
}
return p
}
var _ = compress