我学习了《数据结构》课程中的回溯法后,然后就开始写代码来解决骑士游历问题!首先,我用的就是最简单的暴力回溯法,然后第二种方法就是使用预见性策略来优化提高效率。然后代码如下:
import java.util.*;
/**
* Created by clearbug on 2018/2/26.
*/
public class Solution {
class TwoIntMap {
private int next;
private int nextAvailable;
public TwoIntMap(int next, int nextAvailable) {
this.next = next;
this.nextAvailable = nextAvailable;
}
public int getNext() {
return next;
}
public void setNext(int next) {
this.next = next;
}
public int getNextAvailable() {
return nextAvailable;
}
public void setNextAvailable(int nextAvailable) {
this.nextAvailable = nextAvailable;
}
}
public static void main(String[] args) {
Solution s = new Solution();
for (int i = 5; i < 9; i++) {
System.out.println(i + "================================================================================");
long startTime = System.currentTimeMillis();
List res = s.traverse(i, 0, 0);
for (String line : res) {
System.out.println(line);
}
long endTime = System.currentTimeMillis();
System.out.println("traverse 运行耗时:" + (endTime - startTime) + " ms");
long startTime2 = System.currentTimeMillis();