LeetCode #339 - Nested List Weight Sum

本文介绍了一种针对嵌套整数列表的深度加权求和算法,通过递归方式计算列表中每个整数的值,该值等于其数值乘以其在列表中的深度。文章通过两个示例详细解释了算法的运行过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

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.

每个数的值是它数值乘以层数,所以用递归的解法就很简单了。

class Solution {
public:
    int depthSum(vector<NestedInteger>& nestedList) 
    {
        int res=0;
        for (auto a : nestedList) {
            res+=getSum(a, 1);
        }
        return res;
    }
    int getSum(NestedInteger x, int level) 
    {
        int res=0;
        if (x.isInteger()) return level*x.getInteger();
        for (auto a: x.getList()) {
            res+=getSum(a, level+1);
        }
        return res;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值