Skip to content

Latest commit

 

History

History
57 lines (45 loc) · 1.93 KB

README.md

File metadata and controls

57 lines (45 loc) · 1.93 KB

Given a nested list of integers, return the sum of all integers in the list weighted by their depth.

Each element is either an integer, or a list -- whose elements may also be integers or other lists.

Example 1:

Input: [[1,1],2,[1,1]]
Output: 10 
Explanation: Four 1's at depth 2, one 2 at depth 1.

Example 2:

Input: [1,[4,[6]]]
Output: 27 
Explanation: One 1 at depth 1, one 4 at depth 2, and one 6 at depth 3; 1 + 4*2 + 6*3 = 27.

Companies:
LinkedIn, Facebook

Related Topics:
Depth-first Search

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/nested-list-weight-sum/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(D) where D is the max depth of the list.
class Solution {
private:
    int depthSum(vector<NestedInteger>& nestedList, int depth) {
        int sum = 0;
        for (auto &i : nestedList) {
            if (i.isInteger()) sum += i.getInteger() * depth;
            else sum += depthSum(i.getList(), depth + 1);
        }
        return sum;
    }
public:
    int depthSum(vector<NestedInteger>& nestedList) {
        return depthSum(nestedList, 1);
    }
};