Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,788 questions

51,694 answers

573 users

How to change all elements of row i and column j in a binary matrix to 0 if cell[i, j] is 0 in Scala

1 Answer

0 votes
object BinaryMatrixTransformer {

  def changeRowColumn(matrix: Array[Array[Int]], row: Int, col: Int): Unit = {
    val rows = matrix.length
    val cols = matrix(0).length

    for (j <- 0 until cols) {
      if (matrix(row)(j) != 0)
        matrix(row)(j) = -1
    }

    for (i <- 0 until rows) {
      if (matrix(i)(col) != 0)
        matrix(i)(col) = -1
    }
  }

  def changeBinaryMatrix(matrix: Array[Array[Int]]): Unit = {
    val rows = matrix.length
    if (rows == 0) return
    val cols = matrix(0).length
    if (cols == 0) return

    // First pass: mark positions
    val zeroPositions = for {
      i <- 0 until rows
      j <- 0 until cols
      if matrix(i)(j) == 0
    } yield (i, j)

    // Apply changes
    zeroPositions.foreach { case (i, j) => changeRowColumn(matrix, i, j) }

    // Second pass: clean up -1 placeholders
    for (i <- 0 until rows; j <- 0 until cols) {
      if (matrix(i)(j) == -1)
        matrix(i)(j) = 0
    }
  }

  def printMatrix(matrix: Array[Array[Int]]): Unit = {
    matrix.foreach { row =>
      println(row.mkString(" "))
    }
  }

  def main(args: Array[String]): Unit = {
    val matrix = Array(
      Array(1, 1, 0, 1, 1, 1),
      Array(1, 1, 1, 1, 1, 1),
      Array(1, 1, 0, 1, 1, 1),
      Array(1, 1, 1, 1, 1, 1),
      Array(1, 0, 1, 1, 1, 1)
    )

    changeBinaryMatrix(matrix)
    printMatrix(matrix)
  }
}

 
 
  
/*
run:
 
0 0 0 0 0 0
1 0 0 1 1 1
0 0 0 0 0 0
1 0 0 1 1 1
0 0 0 0 0 0
 
*/

 



answered Jul 5, 2025 by avibootz
...