Java 蛇形矩阵

在这里插入图片描述

这道中文题题意简单,明了,姑且算得上锻炼我们逻辑思维的一道基础题。就是要求我们找出它填充二维数组的规律。显然它是从左下角斜向上依次填充1,2,3,4。。。。。。
所以废话不多说,直接上代码
import  java.util.Scanner;
public class Main{
    public static void main(String[] args){
    Scanner sc=new Scanner(System.in);
    while(sc.hasNext()){                              //多次输入
        int n=sc.nextInt();
        int num=1;
        int[][] a=new int[n][n];
        for(int i=0;i<n;i++){                              //向二维数组内填充数字
            int k=i;
            for(int j=0;j<=i;j++){
                 
                a[k--][j]=num++;                        //这里k--保证了它是从左下角斜上填充
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(a[i][j]==0)
                    break;
                else
                if(j==n-1)
                    System.out.printf("%d",a[i][j]);
                else
                System.out.printf("%d ",a[i][j]);
            }
            System.out.printf("\n");
        }
    }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
邻接阵是一种常用的图的表示方法,它使用一个二维数组来表示图中各个节点之间的连接关系。在邻接阵中,行和列分别代表图中的节点,而阵中的元素表示节点之间的边的存在与否。 DFS(深度优先搜索)是一种图遍历算法,它从图的某个节点开始,沿着一条路径尽可能深入地访问节点,直到无法继续深入为止,然后回溯到上一个节点,继续访问其他未被访问过的节点,直到所有节点都被访问过为止。 在Java中,可以使用邻接阵来实现DFS算法。下面是一个简单的Java代码示例: ```java import java.util.Stack; public class Graph { private int[][] adjacencyMatrix; private int numVertices; public Graph(int numVertices) { this.numVertices = numVertices; adjacencyMatrix = new int[numVertices][numVertices]; } public void addEdge(int source, int destination) { adjacencyMatrix[source][destination] = 1; adjacencyMatrix[destination][source] = 1; } public void dfs(int startVertex) { boolean[] visited = new boolean[numVertices]; Stack<Integer> stack = new Stack<>(); stack.push(startVertex); while (!stack.isEmpty()) { int currentVertex = stack.pop(); System.out.print(currentVertex + " "); visited[currentVertex] = true; for (int i = 0; i < numVertices; i++) { if (adjacencyMatrix[currentVertex][i] == 1 && !visited[i]) { stack.push(i); } } } } public static void main(String[] args) { Graph graph = new Graph(5); graph.addEdge(0, 1); graph.addEdge(0, 2); graph.addEdge(1, 3); graph.addEdge(1, 4); System.out.println("DFS traversal starting from vertex 0:"); graph.dfs(0); } } ``` 上述代码中,Graph类表示图,使用邻接阵来存储图的连接关系。addEdge方法用于添加边,dfs方法用于进行深度优先搜索遍历。在main方法中,创建一个图对象,并添加边,然后调用dfs方法进行遍历。 希望以上代码能够帮助到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值