矩阵邻居
给你一个矩阵,让你算出它的四邻八方,方法一很简单,判断有没超出索引就是了,方法二用第二个矩阵来记录方向,让矩阵第一个数等于要移动的方向
方法一
public class Neighbors
{
public static void Acees(int[][] m)
{
if(m==null) return;
int h=m.Length;
int w=m[0].Length;
for(int r=0;r<h;r++)
{
for(int c=0;c<w;c++)
{
//方法一
Console.Write($"Home{m[r][c]}:");
if(r-1>=0) Console.Write($"{m[r-1][c]}\t");
if(r+1<h) Console.Write($"{m[r+1][c]}\t");
if(c-1>=0) Console.Write($"{m[r][c-1]}\t");
if(c+1<w) Console.Write($"{m[r][c+1]}\t");
}
Console.WriteLine();
}
}
}
方法二
public class Neighbors
{
public static void Acees(int[][] m)
{
if(m==null) return;
int[][] a=new int[][]
{
new int[]{-1,0},
new int[]{1,0},
new int[]{0,-1},
new int[]{0,1},
};
int h=m.Length;
int w=m[0].Length;
for(int r=0;r<h;r++)
{
for(int c=0;c<w;c++)
{
Console.Write($"Home{m[r][c]}:");
foreach (var item in a)
{
int nr=r+item[0];
int nc=c+item[1];
if(nr>=0&&nr<h&&nc>=0&&nc<w)
{
Console.Write($"{m[nr][nc]}\t");
}
}
}
Console.WriteLine();
}
}
}
Programs.cs
static void Main(string[] arg)
{
int[][] m=new int[][]
{
new int[]{1,2,3,4,5},
new int[]{6,7,8,9,10},
new int[]{11,12,13,14,15},
};
Neighbors.Acees(m);
}

浙公网安备 33010602011771号