Class Solution

  • All Implemented Interfaces:

    
    public final class Solution
    
                        

    2125 - Number of Laser Beams in a Bank.

    Medium

    Anti-theft security devices are activated inside a bank. You are given a 0-indexed binary string array bank representing the floor plan of the bank, which is an m x n 2D matrix. bank[i] represents the <code>i<sup>th</sup></code> row, consisting of '0's and '1's. '0' means the cell is empty, while'1' means the cell has a security device.

    There is one laser beam between any two security devices if both conditions are met:

    • The two devices are located on two different rows: <code>r<sub>1</sub></code> and <code>r<sub>2</sub></code>, where <code>r<sub>1</sub>< r<sub>2</sub></code>.

    • For each row i where <code>r<sub>1</sub>< i < r<sub>2</sub></code>, there are no security devices in the <code>i<sup>th</sup></code> row.

    Laser beams are independent, i.e., one beam does not interfere nor join with another.

    Return the total number of laser beams in the bank.

    Example 1:

    Input: bank = "011001","000000","010100","001000"

    Output: 8

    Explanation: Between each of the following device pairs, there is one beam. In total, there are 8 beams:

    • bank1 -- bank1

    • bank1 -- bank3

    • bank2 -- bank1

    • bank2 -- bank3

    • bank5 -- bank1

    • bank5 -- bank3

    • bank1 -- bank2

    • bank3 -- bank2

    Note that there is no beam between any device on the 0<sup>th</sup> row with any on the 3<sup>rd</sup> row.

    This is because the 2<sup>nd</sup> row contains security devices, which breaks the second condition.

    Example 2:

    Input: bank = "000","111","000"

    Output: 0

    Explanation: There does not exist two devices located on two different rows.

    Constraints:

    • m == bank.length

    • n == bank[i].length

    • 1 &lt;= m, n &lt;= 500

    • bank[i][j] is either '0' or '1'.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
    • Field Summary

      Fields 
      Modifier and Type Field Description
    • Constructor Summary

      Constructors 
      Constructor Description
      Solution()
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
    • Method Summary

      Modifier and Type Method Description
      final Integer numberOfBeams(Array<String> bank)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait