[前端刷題]透過JS二維陣列橫縱列解躲鬼小遊戲

閱讀時間約 4 分鐘
這次的題目是個九宮格小遊戲,透過二維陣列橫縱列來解題,陣列裡面0代表的就是鬼屋,要避免住到鬼屋以及鬼屋下面,所以要從colum欄 row列一一去算,如遇到了就要跳過,並將其餘可住的數值都加總起來,答案就解開了。所以帶大家看看簡單的二維陣列怎麼解,怎麼寫可以取想取的數值,就一起來看看吧!

題目

After becoming famous, the CodeBots decided to move into a new building together. Each of the rooms has a different cost, and some of them are free, but there's a rumour that all the free rooms are haunted! Since the CodeBots are quite superstitious, they refuse to stay in any of the free rooms, or any of the rooms below any of the free rooms.
Given matrix, a rectangular matrix of integers, where each value represents the cost of the room, your task is to return the total sum of all rooms that are suitable for the CodeBots (ie: add up all the values that don't appear below a 0).

範例

Input/Output

  • [execution time limit] 4 seconds (js)
  • [input] array.array.integer matrixA 2-dimensional array of integers representing the cost of each room in the building. A value of 0 indicates that the room is haunted.Guaranteed constraints:
    1 ≤ matrix.length ≤ 5,
    1 ≤ matrix[i].length ≤ 5,
    0 ≤ matrix[i][j] ≤ 10.
  • [output] integerThe total price of all the rooms that are suitable for the CodeBots to live in.

解題

function solution(matrix) {
let rowLength = matrix.length;
let ghost=[];
let ans=0;
if(rowLength>0){
let columLength = matrix[0].length;
for(let i = 0; i < rowLength; i++){
for(let j = 0; j < columLength; j++){
if(!ghost.includes(j)){
if(matrix[i][j]===0){
ghost.push(j);
}else{
ans +=matrix[i][j];
}}}}}
return ans;
}

想法

先宣告rowLength列為一維陣列的長度,以及ghost為鬼屋處,以及答案值ans
並進行兩次迴圈判斷,收先如果rowLength數組的長度大於0,那就開啟以下條件,讓columLength欄等於總欄位長度,設定外層迴圈為i內圈迴圈為j,外層會透過迴圈去跑每個列,內圈則是透過迴圈去每個欄。
如果鬼屋不包含某欄中,又如果matrix[i][j]某列中的某欄值為0,那就將它塞進鬼屋Array陣列當中。否則,就將剩下的的數值都加總起來,其數值等於答案ans。
由於是刷題練習比較嚴格,要注意跑雙迴圈時,跑的時間有沒有超過題目限制的時間,如果跑太久超過了,那也會被判斷是錯誤喔!
歡迎大家留言互相交流~
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
51會員
34Content count
紀錄所閱讀過的書籍,並經將書中精華寫成摘要,希望有助於大家對該書的快速的了解。更能迅速找到自己所喜愛的類型,用最簡短的時間了解作者欲傳達得意思。
留言0
查看全部
發表第一個留言支持創作者!
Anya 安雅的雜談室 的其他內容
本文題目來自網站codesignal,它是個可依自己選取的程式語言進行測驗,測驗難易程度會逐題增加,可透過解題來獲得分數以及徽章,相當有趣味性。在sumbit後可在左欄看到票選最高的解法,這些解法來自不同語言,當然你可以在上面篩選自己撰寫的程式語言。沒有所謂的最好的解法,只有最適合的方式。
本文題目來自網站codesignal,它是個可依自己選取的程式語言進行測驗,測驗難易程度會逐題增加,可透過解題來獲得分數以及徽章,相當有趣味性。在sumbit後可在左欄看到票選最高的解法,這些解法來自不同語言,當然你可以在上面篩選自己撰寫的程式語言。沒有所謂的最好的解法,只有最適合的方式。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
Describe a time when you had to work with others to overcome a challenge. You should say: what the challenge was who you worked with what
Thumbnail
Describe an occasion when you had to make time for someone. You should say: what the situation was how you rearranged your plans what
Thumbnail
Describe an occasion when your offer to help was not accepted. You should say: who you offered to help what kind of help you offered why
Thumbnail
Describe an event where you met someone you had lost contact with. You should say: 描述一個你與曾失去聯繫的人重逢的經歷 when and where it happened 發生的時間和地點
Thumbnail
集雅思輔考十餘年之大成,賦予考生活學活用的能力。 Describe an event you attended where there was a lot of food. You should say: what type of event it was what kinds o
Thumbnail
前端工程師為了讓網頁呈現在使用者面前時更加美觀,經常需要透過圖表及文字的調整達到前述美觀目的。本篇文章將分別介紹測試圖片網站「Dynamic Dummy Image Generator」及測試文字網站「Lipsum generator:Lorem Ipsum」,讓身為前端工程師或有意成為前端工程師的
Thumbnail
前端工程師可能會隨著工作經驗的累積,而開始想要寫出更好的網頁架構,又或者是能有一套方法讓組織間的溝通、工作模式更加順暢。
Thumbnail
Firebase Realtime Database 是一個 NoSQL 即時雲端資料庫,支援多平台(JavaScript SDKs、Android、iOS),可以讓使用者即時取得資料庫的資料。
Thumbnail
Functional Programming 中文譯作函式程式設計,或是功能性程式設計,常簡稱為:FP,是一種透過使用純函式(Pure Funciton)進行軟體開發,且避免副作用的程式設計典範,比起宣告式的流程控制,在 FP 採用主要以表達式的方式撰寫程式碼。
Thumbnail
在跟社群朋友私訊時,他說我可以考慮分享「我的前端之路」之類的啊。覺得這真是一個很不錯的主題,每個人都有自己的故事!不愧是個老師,會因材施教XD 本科系畢業、碰前端之前 憧憬前端工作,但沒自信、不敢 設計與美感 - 一生從沒碰過的東西 Vue 比 React 簡單? 與設計師的合作 跨足APP
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
Describe a time when you had to work with others to overcome a challenge. You should say: what the challenge was who you worked with what
Thumbnail
Describe an occasion when you had to make time for someone. You should say: what the situation was how you rearranged your plans what
Thumbnail
Describe an occasion when your offer to help was not accepted. You should say: who you offered to help what kind of help you offered why
Thumbnail
Describe an event where you met someone you had lost contact with. You should say: 描述一個你與曾失去聯繫的人重逢的經歷 when and where it happened 發生的時間和地點
Thumbnail
集雅思輔考十餘年之大成,賦予考生活學活用的能力。 Describe an event you attended where there was a lot of food. You should say: what type of event it was what kinds o
Thumbnail
前端工程師為了讓網頁呈現在使用者面前時更加美觀,經常需要透過圖表及文字的調整達到前述美觀目的。本篇文章將分別介紹測試圖片網站「Dynamic Dummy Image Generator」及測試文字網站「Lipsum generator:Lorem Ipsum」,讓身為前端工程師或有意成為前端工程師的
Thumbnail
前端工程師可能會隨著工作經驗的累積,而開始想要寫出更好的網頁架構,又或者是能有一套方法讓組織間的溝通、工作模式更加順暢。
Thumbnail
Firebase Realtime Database 是一個 NoSQL 即時雲端資料庫,支援多平台(JavaScript SDKs、Android、iOS),可以讓使用者即時取得資料庫的資料。
Thumbnail
Functional Programming 中文譯作函式程式設計,或是功能性程式設計,常簡稱為:FP,是一種透過使用純函式(Pure Funciton)進行軟體開發,且避免副作用的程式設計典範,比起宣告式的流程控制,在 FP 採用主要以表達式的方式撰寫程式碼。
Thumbnail
在跟社群朋友私訊時,他說我可以考慮分享「我的前端之路」之類的啊。覺得這真是一個很不錯的主題,每個人都有自己的故事!不愧是個老師,會因材施教XD 本科系畢業、碰前端之前 憧憬前端工作,但沒自信、不敢 設計與美感 - 一生從沒碰過的東西 Vue 比 React 簡單? 與設計師的合作 跨足APP