路径和四

【题目描述】
如果树的深度小于5,则该树可以由三位整数的列表表示。
对于此列表中的每个整数:
百位数表示该节点的深度D,1 <= D <= 4。
2.十位数表示该节点在其所属级别中的位置P,1 <= P <= 8.该位置与完整二叉树中的位置相同。
3.单位数字表示该节点的值V,0 <= V <= 9。

给定一个表示深度小于5的二叉树的升序三位整数列表,您需要返回从根到叶子的所有路径和的总和。

【题目样例 】

例 1:
输入: [113, 215, 221]
输出: 12
解释:
该树如下图所示:
3
/
5 1
所有的路径和为 (3 + 5) + (3 + 1) = 12.

例 2:
输入: [113, 221]
输出: 4
解释:
该树如下所示:
3

1
所有的路径和为 (3 + 1) = 4.

class Solution:
    def pathSumIV(self,nums):
        if len(nums) == 1:
            return nums[0]%10
        a = [-1 for _ in range(100)]
        for i in nums:
            a[i/10]=i%10
        ret=0
        for i in range(2,5):
            for j in range(1,9):
				idx=i*10+j
				pre=(i-1)*10+(j+1)/2
				next1=(i+1)*10+2*j
				next2=(i+1)*10+2*j-1
				if a[idx]!=-1 and a[pre]!=-1:
					a[idx]=a[idx]+a[pre]
				if a[next1]==-1 and a[next2]==-1 and a[idx]!=-1:
					ret=ret+a[idx]
		return ret


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值