Facebook
From minhhnh, 2 Months ago, written in Python.
Embed
Download Paste or View Raw
Hits: 176
  1. from typing import List
  2. class Solution:
  3.     """
  4.    @param nestedList: a list of NestedInteger
  5.    @return: the sum
  6.    """
  7.     def depthSumInverse(self, nestedList: List[NestedInteger]):
  8.         max_depth = 0
  9.  
  10.         def dfs(lst: List[NestedInteger], depth):
  11.             nonlocal max_depth
  12.             weighted_sum, unweighted_sum = 0, 0
  13.             max_depth = max(max_depth, depth)
  14.             for i in lst:
  15.                 if not i.isInteger():
  16.                     result = dfs(i.getList(), depth + 1)
  17.                     weighted_sum += result[0]
  18.                     unweighted_sum += result[1]
  19.                 else:
  20.                     weighted_sum += i.getInteger() * (-depth)
  21.                     unweighted_sum += i.getInteger()
  22.             return weighted_sum, unweighted_sum
  23.  
  24.         weighted_sum, unweighted_sum = dfs(nestedList, 1)
  25.         return weighted_sum + unweighted_sum * (max_depth + 1)