我有一个节点和子节点Dictionary<int,int[]>
的字典(1)和一个与每个节点相关的权重列表(2)。字典可以解释如下:例如:键1具有值3,4,这意味着节点id = 1是节点3和4的父节点。键3具有值5,6,8,这意味着节点id = 3是父节点5,6和8 ......等。第二个列表只是权重列表,其中索引表示权重与之关联的节点ID。
我想计算list(1)的每个关键节点,它是所有子节点权重的总和。
我认为这个问题类似于递归树和,尽管我的列表没有设置为树结构。
我该怎么办?
答案 0 :(得分:0)
一位正在工作的同事想出了这个优雅的解决方案(需要2个字典)。可能不是最有效率的。
double MethodName(int Id) => FirstDic.ContainsKey(Id) ? FirstDic[Id].Sum(n => MethodName(n)) : SecondDic.Where(y => y.Key == Id).Select(x => x.Value).Sum();