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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端算法js:跳格子游戏

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。