Leetcode Note: Go - Two Sum IV Input Is a BST
Two Sum IV - Input is a BST - LeetCode
https://leetcode.com/problems/two-sum-iv-input-is-a-bst/
- Go 言語で取り組んだメモ
所感
- int k で与えられた数値を binary tree の node を 2つ 加算することで算出できるかを bool で return する
回答
Clean Go Solution. Beats 100% - LeetCode Discuss
https://leetcode.com/problems/two-sum-iv-input-is-a-bst/discuss/1421844/Clean-Go-Solution.-Beats-100
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func findTarget(root *TreeNode, k int) bool {
return dfs(root, k, map[int]bool{})
}
func dfs(root *TreeNode, k int, m map[int]bool) bool {
if root == nil {
return false
}
if m[k-root.Val] {
return true
}
m[root.Val] = true
return dfs(root.Left, k, m) || dfs(root.Right, k, m)
}
- 再帰で map を渡して走査する
- map で数値のステートを管理する