c# - 数组遍历分别得到每条路径的总和
问题描述
我得到了一个二维数组 ([i][j]),其中 i 级数组每个都有特定的 j 个元素。每个元素都包含一个数字。
我发现有一个名为 N-ary tree 的图,但上面的似乎不同。我可以知道如何调用上面的图表吗?
如何使用 C# 打印每个路径的总和?我的想法是这样的:
i=0, j=0
+i=1, j=0
+i=2, j=0
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=0
+i=2, j=1
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=0
+i=2, j=2
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=0
+i=2, j=3
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=0
+i=2, j=4
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=1
+i=2, j=0
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=1
+i=2, j=1
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=1
+i=2, j=2
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=1
+i=2, j=3
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
i=0, j=0
+i=1, j=1
+i=2, j=4
+i=3, j=0
+i=3, j=1
+i=3, j=2
+i=3, j=3
.
.
.
解决方案
这是创建图表的简单方法。我假设您可以在每条路径上向任一方向移动(不仅仅是向下):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<List<Node>> nodes = new List<List<Node>>();
for (int i = 0; i < 4; i++)
{
int j = 0;
switch (i)
{
case 0 :
j = 5;
break;
case 1:
j = 7;
break;
case 2:
j = 6;
break;
case 3:
j = 4;
break;
}
List<Node> row = new List<Node>();
nodes.Add(row);
for (int col = 0; col < j; col++)
{
Node newNode = new Node();
newNode.i = i;
newNode.j = j;
row.Add(newNode);
}
}
//add neighbors
for (int i = 0; i < nodes.Count() - 1; i++) // do not need to add neighbors to last row
{
for (int j = 0; j < nodes[i].Count(); j++)
{
for (int k = 0; k < nodes[i + 1].Count(); k++)
{
Node currentNode = nodes[i][j];
Node neighbor = nodes[i + 1][k];
currentNode.neighbors.Add(neighbor);
neighbor.neighbors.Add(currentNode);
}
}
}
}
}
public class Node
{
public int i { get; set; }
public int j { get; set; }
public int value { get; set; }
public List<Node> neighbors = new List<Node>();
}
}
推荐阅读
- ibm-cloud - IBM Watson Assistant:尝试评估和比较多个上下文变量
- android - 是否可以在 Android TextView 或 Webview 中设置 div 类的样式?
- android - 结合使用 ScrollView Activity 和 adjustPan 时的空白
- c# - 如何将@RenderBody() 分成两部分
- common-lisp - Common Lisp 在宏中生成变量名
- reactjs - 如何测试使用反应上下文 API 的组件?
- javascript - 获取所有标题并递归创建树
- javascript - 使用 JavaScript,是否可以从传出的获取请求中捕获正文有效负载?
- node.js - Express 服务于 2 个不同的 Angular PWA
- java - 模型映射器中的延迟初始化异常