0364. Nested List Weight Sum II
Last updated
Last updated
**Input:** nestedList = [[1,1],2,[1,1]]
**Output:** 8
**Explanation:** Four 1's with a weight of 1, one 2 with a weight of 2.
1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 8**Input:** nestedList = [1,[4,[6]]]
**Output:** 17
**Explanation:** One 1 at depth 3, one 4 at depth 2, and one 6 at depth 1.
1*3 + 4*2 + 6*1 = 17class Solution {
public int depthSumInverse(List<NestedInteger> nestedList) {
int unweighted = 0, res = 0;
while (nestedList.size() > 0) {
List<NestedInteger> next = new ArrayList<>();
for (NestedInteger ni : nestedList) {
if (ni.isInteger()) unweighted += ni.getInteger();
else next.addAll(ni.getList());
}
res += unweighted;
nestedList = next;
}
return res;
}
}
/*
1) use 2 vars: weighted/unweighted; 2) recursion until no more list, each time += unweighted, as they go one level further, they add once more;
*/