中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

官方網(wǎng)站建設(shè)要點(diǎn)最近三天的新聞大事簡短

官方網(wǎng)站建設(shè)要點(diǎn),最近三天的新聞大事簡短,本地網(wǎng)站有什么可以做,淄博網(wǎng)站建設(shè) 招聘在8x8的國際棋盤上,按照馬走日的規(guī)則,驗(yàn)證是否能夠走遍棋盤。 1、創(chuàng)建棋盤 chessBoard,是一個(gè)二維數(shù)組。 2、將當(dāng)前位置設(shè)置為已經(jīng)訪問,然后根據(jù)當(dāng)前位置,計(jì)算馬兒還能走哪些位置,并放入到一個(gè)集合中&…

在8x8的國際棋盤上,按照馬走日的規(guī)則,驗(yàn)證是否能夠走遍棋盤。

1、創(chuàng)建棋盤 chessBoard,是一個(gè)二維數(shù)組。

2、將當(dāng)前位置設(shè)置為已經(jīng)訪問,然后根據(jù)當(dāng)前位置,計(jì)算馬兒還能走哪些位置,并放入到一個(gè)集合中(ArrayList),最多有8個(gè)位置,每走一步,就使用step+1。

3、遍歷ArrayList中存放的所有位置,看看哪個(gè)可以走通,如果走通,就繼續(xù),走不通,就回溯。

4、判斷馬兒是否完成了任務(wù),使用step和應(yīng)該走的步數(shù)比較,如果沒有達(dá)到數(shù)量,則表示沒有完成任務(wù),將整個(gè)棋盤置0。

package com.horse;import java.awt.Point;
import java.util.ArrayList;
import java.util.Comparator;public class HorseChessboard {private static int X; // 棋盤的列數(shù)private static int Y; // 棋盤的行數(shù)//創(chuàng)建一個(gè)數(shù)組,標(biāo)記棋盤的各個(gè)位置是否被訪問過private static boolean visited[];//使用一個(gè)屬性,標(biāo)記是否棋盤的所有位置都被訪問private static boolean finished; // 如果為true,表示成功public static void main(String[] args) {System.out.println("騎士周游算法,開始運(yùn)行~~");//測試騎士周游算法是否正確X = 8;Y = 8;int row = 1; //馬兒初始位置的行,從1開始編號(hào)int column = 1; //馬兒初始位置的列,從1開始編號(hào)//創(chuàng)建棋盤int[][] chessboard = new int[X][Y];visited = new boolean[X * Y];//初始值都是false//測試一下耗時(shí)long start = System.currentTimeMillis();traversalChessboard(chessboard, row - 1, column - 1, 1);long end = System.currentTimeMillis();System.out.println("共耗時(shí): " + (end - start) + " 毫秒");//輸出棋盤的最后情況for(int[] rows : chessboard) {for(int step: rows) {System.out.print(step + "\t");}System.out.println();}}/*** 完成騎士周游問題的算法* @param chessboard 棋盤* @param row 馬兒當(dāng)前的位置的行 從0開始 * @param column 馬兒當(dāng)前的位置的列  從0開始* @param step 是第幾步 ,初始位置就是第1步 */public static void traversalChessboard(int[][] chessboard, int row, int column, int step) {chessboard[row][column] = step;//row = 4 X = 8 column = 4 = 4 * 8 + 4 = 36visited[row * X + column] = true; //標(biāo)記該位置已經(jīng)訪問//獲取當(dāng)前位置可以走的下一個(gè)位置的集合 ArrayList<Point> ps = next(new Point(column, row));//對(duì)ps進(jìn)行排序,排序的規(guī)則就是對(duì)ps的所有的Point對(duì)象的下一步的位置的數(shù)目,進(jìn)行非遞減排序sort(ps);//遍歷 pswhile(!ps.isEmpty()) {Point p = ps.remove(0);//取出下一個(gè)可以走的位置//判斷該點(diǎn)是否已經(jīng)訪問過if(!visited[p.y * X + p.x]) {//說明還沒有訪問過traversalChessboard(chessboard, p.y, p.x, step + 1);}}//判斷馬兒是否完成了任務(wù),使用   step 和應(yīng)該走的步數(shù)比較 , //如果沒有達(dá)到數(shù)量,則表示沒有完成任務(wù),將整個(gè)棋盤置0//說明: step < X * Y  成立的情況有兩種//1. 棋盤到目前位置,仍然沒有走完//2. 棋盤處于一個(gè)回溯過程if(step < X * Y && !finished ) {chessboard[row][column] = 0;visited[row * X + column] = false;} else {finished = true;}}/*** 功能: 根據(jù)當(dāng)前位置(Point對(duì)象),計(jì)算馬兒還能走哪些位置(Point),并放入到一個(gè)集合中(ArrayList), 最多有8個(gè)位置* @param curPoint* @return*/public static ArrayList<Point> next(Point curPoint) {//創(chuàng)建一個(gè)ArrayListArrayList<Point> ps = new ArrayList<Point>();//創(chuàng)建一個(gè)PointPoint p1 = new Point();//表示馬兒可以走5這個(gè)位置if((p1.x = curPoint.x - 2) >= 0 && (p1.y = curPoint.y -1) >= 0) {ps.add(new Point(p1));}//判斷馬兒可以走6這個(gè)位置if((p1.x = curPoint.x - 1) >=0 && (p1.y=curPoint.y-2)>=0) {ps.add(new Point(p1));}//判斷馬兒可以走7這個(gè)位置if ((p1.x = curPoint.x + 1) < X && (p1.y = curPoint.y - 2) >= 0) {ps.add(new Point(p1));}//判斷馬兒可以走0這個(gè)位置if ((p1.x = curPoint.x + 2) < X && (p1.y = curPoint.y - 1) >= 0) {ps.add(new Point(p1));}//判斷馬兒可以走1這個(gè)位置if ((p1.x = curPoint.x + 2) < X && (p1.y = curPoint.y + 1) < Y) {ps.add(new Point(p1));}//判斷馬兒可以走2這個(gè)位置if ((p1.x = curPoint.x + 1) < X && (p1.y = curPoint.y + 2) < Y) {ps.add(new Point(p1));}//判斷馬兒可以走3這個(gè)位置if ((p1.x = curPoint.x - 1) >= 0 && (p1.y = curPoint.y + 2) < Y) {ps.add(new Point(p1));}//判斷馬兒可以走4這個(gè)位置if ((p1.x = curPoint.x - 2) >= 0 && (p1.y = curPoint.y + 1) < Y) {ps.add(new Point(p1));}return ps;}//根據(jù)當(dāng)前這個(gè)一步的所有的下一步的選擇位置,進(jìn)行非遞減排序, 減少回溯的次數(shù)public static void sort(ArrayList<Point> ps) {ps.sort(new Comparator<Point>() {@Overridepublic int compare(Point o1, Point o2) {// TODO Auto-generated method stub//獲取到o1的下一步的所有位置個(gè)數(shù)int count1 = next(o1).size();//獲取到o2的下一步的所有位置個(gè)數(shù)int count2 = next(o2).size();if(count1 < count2) {return -1;} else if (count1 == count2) {return 0;} else {return 1;}}});}
}

http://www.risenshineclean.com/news/4678.html

相關(guān)文章:

  • 太平洋保險(xiǎn)網(wǎng)站做的這么爛打廣告推廣怎么做
  • 分類網(wǎng)站建設(shè)方案廣州網(wǎng)站優(yōu)化
  • 怎么找網(wǎng)站模板seo搜索引擎入門教程
  • 網(wǎng)站開發(fā)有哪些要求咖啡seo是什么意思
  • 泰安做網(wǎng)站哪家好企業(yè)網(wǎng)站制作方案
  • 浦東新區(qū)網(wǎng)站建設(shè)公司哪家靠譜奇葩網(wǎng)站100個(gè)
  • html 網(wǎng)站地圖北京seo顧問推推蛙
  • 臨沂最好的做網(wǎng)站公司網(wǎng)絡(luò)推廣費(fèi)用高嗎
  • 網(wǎng)站開發(fā)需要團(tuán)隊(duì)怎么做互聯(lián)網(wǎng)推廣
  • 上海高端定制網(wǎng)站公司河南企業(yè)網(wǎng)站建設(shè)
  • 有人知道網(wǎng)站怎么做嗎海外網(wǎng)站
  • 濟(jì)南網(wǎng)站建設(shè)599網(wǎng)絡(luò)推廣的方法有
  • 上海網(wǎng)站建設(shè)公司地廣州專業(yè)seo公司
  • 如何查到別人的網(wǎng)站做哪些競價(jià)詞友情鏈接查詢友情鏈接檢測
  • wordpress如何建站群百度數(shù)據(jù)分析工具
  • W做網(wǎng)站最佳bt磁力狗
  • 難道做網(wǎng)站必須用vue框架嗎系統(tǒng)優(yōu)化軟件哪個(gè)好
  • 食品行業(yè)網(wǎng)站開發(fā)seo資源咨詢
  • 現(xiàn)在什么視頻網(wǎng)站做的最好網(wǎng)絡(luò)營銷論文
  • 最新的網(wǎng)站建設(shè)軟件百度個(gè)人中心登錄
  • 工業(yè)設(shè)計(jì)專業(yè)就業(yè)前景怎么樣百度優(yōu)化服務(wù)
  • 網(wǎng)站內(nèi)怎樣做關(guān)鍵詞有效果網(wǎng)絡(luò)優(yōu)化論文
  • 賺錢網(wǎng)站開發(fā)天津百度推廣
  • 凡客誠品是品牌嗎廣州seo外包
  • 阿里巴巴批發(fā)網(wǎng)站上面怎么做微商單頁網(wǎng)站制作
  • 網(wǎng)站建設(shè)宗旨怎么寫谷歌推廣效果怎么樣
  • 項(xiàng)目網(wǎng)站建設(shè)方案佛山網(wǎng)站建設(shè)工作
  • 做便民網(wǎng)站都需要提供什么海外推廣
  • 做英文網(wǎng)站用目錄還是子域名找做網(wǎng)站的公司
  • 小企業(yè)想做網(wǎng)站推廣找哪家強(qiáng)網(wǎng)站服務(wù)器ip地址查詢