Re: [閒聊] 每日LeetCode
https://leetcode.com/problems/number-of-laser-beams-in-a-bank/description
2125. Number of Laser Beams in a Bank
給你一個字串陣列bank[]表示的2D矩陣,裡面只有0和1,表示該位置是否有防盜裝置,當
下列情形滿足時,兩個防盜裝置會產生一個雷射:
1.防盜裝置在不同列
2.列之間不存在任何防盜裝置
求出擺放之後會產生的雷射數量。
思路:
1.檢查所有列往上碰到的第一個存在防盜裝置的列共有幾個裝置,把他和當前列的裝置
數量相乘即可得到產生的雷射數量,只記住先前裝置數量大於0的列,遍歷每一列即可。
Java Code:
---------------------------------------------------
class Solution {
public int numberOfBeams(String[] bank) {
int res = 0;
int prevRow = 0;
for (String s : bank) {
int currRow = count(s);
res += currRow * prevRow;
if (currRow > 0) {
prevRow = currRow;
}
}
return res;
}
private int count(String row) {
int cnt = 0;
for (char c : row.toCharArray()) {
cnt += c - '0';
}
return cnt;
}
}
---------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.73.13 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1704260167.A.486.html
推
01/03 13:37,
1年前
, 1F
01/03 13:37, 1F
→
01/03 13:38,
1年前
, 2F
01/03 13:38, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 593 之 719 篇):