嵌套列表的加权和II
https://www.lintcode.com/problem/905/description?utm_source=sc-libao-ql
输入: nestedList = [[1,1],2,[1,1]]输出: 8解释:四个深度为 1 的 1,一个深度为 2 的 2输入: nestedList = [1,[4,[6]]]输出: 17解释:一个深度为 3 的 1, 一个深度为 2 的 4,和一个深度为 1 的 61*3 + 4*2 + 6*1 = 17from collections import deque
class Solution:
"""
@param nestedList: a list of NestedInteger
@return: the sum
"""
def depthSumInverse(self, nestedList):
# Write your code here.
q = deque(nestedList)
level = 0
items = {}
while q:
level += 1
n = len(q)
levelsum = 0
for _ in range(n):
cur = q.popleft()
if cur.isInteger():
levelsum += cur.getInteger()
else:
q.extend(cur.getList())
items[levelsum] = level
return sum(k*(abs(level-v)+1) for k,v in items.items())
Last updated