Size: a a a

2020 April 06

A(

Andrey (@AndrewB330) in pro.algorithms
def dfs(v, depth):
   if (depth==k)
       ans+=v.val
   if (v.left)
       dfs(v.left, depth+1)
   if (v.right)
       dfs(v.right, depth+1)
источник

DT

Dmi Tgl in pro.algorithms
Andrey (@AndrewB330)
def dfs(v, depth):
   if (depth==k)
       ans+=v.val
   if (v.left)
       dfs(v.left, depth+1)
   if (v.right)
       dfs(v.right, depth+1)
Для каждой ноды хранить ее глубину?
источник

MB

Mikail Bagishov in pro.algorithms
Dmi Tgl
Для каждой ноды хранить ее глубину?
Этот код не хранит глубину всех вершин
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Ну глянь что я написал)
Я поддерживаю ее в отдельной переменной, на каждом вызове дфса
источник

DT

Dmi Tgl in pro.algorithms
Andrey (@AndrewB330)
def dfs(v, depth):
   if (depth==k)
       ans+=v.val
   if (v.left)
       dfs(v.left, depth+1)
   if (v.right)
       dfs(v.right, depth+1)
Этож в глубину получается?
источник

DT

Dmi Tgl in pro.algorithms
Я протупил что-то
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Dmi Tgl
Этож в глубину получается?
Да, именно
источник

A

Aragaer in pro.algorithms
ну можно просто не ходить глубже, чем k
источник

MB

Mikail Bagishov in pro.algorithms
Dmi Tgl
Этож в глубину получается?
queue<pair<int, int» q;
q.push(0, 0);
while (v, d) := q.pop() {
   if d == target:
      ans += val[v]
      continue
   if left[v]
      q.push(left[v], d+1)
   if right[v]
       q.push(right[v], d+1)
}
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Ой, да
источник

A(

Andrey (@AndrewB330) in pro.algorithms
else там
источник

MB

Mikail Bagishov in pro.algorithms
Вот тебе обход в ширину
источник

CD

Constantine Drozdov in pro.algorithms
Mikail Bagishov
queue<pair<int, int» q;
q.push(0, 0);
while (v, d) := q.pop() {
   if d == target:
      ans += val[v]
      continue
   if left[v]
      q.push(left[v], d+1)
   if right[v]
       q.push(right[v], d+1)
}
что это за язык? о_О
источник

MB

Mikail Bagishov in pro.algorithms
Псевдокод
источник

DT

Dmi Tgl in pro.algorithms
Mikail Bagishov
queue<pair<int, int» q;
q.push(0, 0);
while (v, d) := q.pop() {
   if d == target:
      ans += val[v]
      continue
   if left[v]
      q.push(left[v], d+1)
   if right[v]
       q.push(right[v], d+1)
}
Что такое v, d ?
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Mikail Bagishov
queue<pair<int, int» q;
q.push(0, 0);
while (v, d) := q.pop() {
   if d == target:
      ans += val[v]
      continue
   if left[v]
      q.push(left[v], d+1)
   if right[v]
       q.push(right[v], d+1)
}
Это на чем?)))
источник

MB

Mikail Bagishov in pro.algorithms
Dmi Tgl
Что такое v, d ?
Текущая вершина и расстояние до нее
источник

CD

Constantine Drozdov in pro.algorithms
Mikail Bagishov
Псевдокод
а я думал псивгокотлин
источник

A(

Andrey (@AndrewB330) in pro.algorithms
Смесь го, питона и плюсов
источник

MB

Mikail Bagishov in pro.algorithms
Главное, чтобы читалось
источник