算法
1. 骑士周游问题
-
马踏棋盘算法也被称为骑士周游问题
-
将马随机放在国际象棋的 8x8 棋盘中
[0~7][0~7]
的某个方格中,马鞍走起规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格
3. 会使用到图的遍历算法(DFS)+ 贪心算法优化
1.1 普通方法
package com.example.mhl_demo.day01;
import java.awt.*;
import java.util.ArrayList;
/**
* 骑士周游
*/
public class HouseChessBoard {
//定义属性
private static int X = 6;//表示 col
private static int Y = 6;//表示 row
//棋盘
private static int[][] chessBoard = new int[Y][X];
//记录某个位置是否走过
private static boolean[] visited = new boolean[X * Y];
//记录马儿是否遍历完棋盘
private static boolean finished = false;
public static void main(String[] args) {
int row = 5;
int col = 5;
//测试
long start = System.currentTimeMillis();
traversalChessBoard(chessBoard,row-1,col - 1,1);
long end = System.currentTimeMillis();
System.out.println("运行时间:" + (end - start) + "ms");
//输出当前棋盘的情况
for (int[] rows : chessBoard) {
for</