日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端算法js:跳格子游戏

發(fā)布時間:2023/12/20 HTML 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端算法js:跳格子游戏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
// 前端算法js:跳格子游戲 let arrFlag, arrNode, stepAll; // 節(jié)點(diǎn)遍歷狀態(tài),節(jié)點(diǎn)的相鄰啟動點(diǎn)數(shù)組,是否完成所有步驟 function jumpGame2(num, arr) {arrFlag = new Array(num).fill(0); // 初始化節(jié)點(diǎn)狀態(tài)為0 ,1=已經(jīng)遍歷了,死循環(huán);2=該節(jié)點(diǎn)已經(jīng)遍歷完成了stepAll = true; // 默認(rèn)能完成所有節(jié)點(diǎn)arrNode = []; // 相鄰節(jié)點(diǎn)啟用數(shù)組for (let i = 0; i < num; i++) {arrNode.push(arr.filter((el) => el[1] == i).map((elc) => elc[0])); // 將數(shù)組過濾并map成需要的節(jié)點(diǎn)啟用數(shù)組}if (arrNode.some((el) => !el.length)) { // 有沒有默認(rèn)開啟的節(jié)點(diǎn)for (let i = 0; i < num && stepAll; i++) { // 對每隔節(jié)點(diǎn)使用dfs遍歷,判斷是否完成全部節(jié)點(diǎn)if (arrFlag[i] == 0) { // 只有當(dāng)該節(jié)點(diǎn)沒有被遍歷的情況下執(zhí)行dfsdfs(i);}}return stepAll ? "yes" : "no"; // 返回結(jié)果stepAll來自dfs的遍歷處理} else {return "no"; // 如果沒有默認(rèn)開啟的節(jié)點(diǎn)就直接no} } function dfs(index) {arrFlag[index] = 1; // 第一步設(shè)置遍歷狀態(tài)為已遍歷let arrNodeChild = arrNode[index]; // 獲取當(dāng)前節(jié)點(diǎn)下的所有啟動節(jié)點(diǎn)for (let j = 0, len = arrNodeChild.length; j < len; j++) { // 遍歷啟動節(jié)點(diǎn)if (arrFlag[arrNodeChild[j]] == 0) { // 如果啟動節(jié)點(diǎn)未啟動狀態(tài)dfs(arrNodeChild[j]); // 繼續(xù)dfsif (!stepAll) { // 若dfs中遍歷到已經(jīng)遍歷過的節(jié)點(diǎn),跳出循環(huán)break;}} else if (arrFlag[arrNodeChild[j]] == 1) { // 若遍歷到已經(jīng)遍歷過的節(jié)點(diǎn),跳出循環(huán)stepAll = false; // 并設(shè)stepAll為false,意思是這個遍歷不成功,并跳出循環(huán)break;}}arrFlag[index] = 2; // 若上面循環(huán)順利完成,意思當(dāng)前節(jié)點(diǎn)及其啟動節(jié)點(diǎn)都已經(jīng)通過dfs,表示該節(jié)點(diǎn)已經(jīng)遍歷完 } console.log(jumpGame2(3, [[0, 1],[0, 2],])); // yes console.log(jumpGame2(2, [[1, 0],[0, 1],])); // no console.log(jumpGame2(4, [[1, 3],[0, 1],[3, 2],[2, 0],])); // no console.log(jumpGame2(4, [[0, 1],[3, 2],[2, 3],])); // no console.log(jumpGame2(6, [[0, 1],[0, 2],[0, 3],[0, 4],[0, 5],])); // yes console.log(jumpGame2(5, [[4, 3],[0, 4],[2, 1],[3, 2],])); // yes console.log(jumpGame2(4, [[1, 2],[1, 0],])); // yes

總結(jié)

以上是生活随笔為你收集整理的前端算法js:跳格子游戏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。