Skip to main content

Flood Fill

 1. You are given a number n, representing the number of rows.

2. You are given a number m, representing the number of columns.

3. You are given n*m numbers, representing elements of 2d array a. The numbers can be 1 or 0 only.

4. You are standing in the top-left corner and have to reach the bottom-right corner. 

Only four moves are allowed 't' (1-step up), 'l' (1-step left), 'd' (1-step down) 'r' (1-step right). You can only move to cells which have 0 value in them. You can't move out of the boundaries or in the cells which have value 1 in them (1 means obstacle)

5. Complete the body of floodfill function - without changing signature - to print all paths that can be used to move from top-left to bottom-right.


Note1 -> Please check the sample input and output for details

Note2 -> If all four moves are available make moves in the order 't', 'l', 'd' and 'r'

Input Format

A number n

A number m

e11

e12..

e21

e22..

.. n * m number of elements

Output Format

trrrdlt

tlldrt

.. and so on


Constraints

1 <= n <= 10

1 <= m <= 10

e1, e2, .. n * m elements belongs to set (0, 1)

Sample Input

3 3

0 0 0

1 0 1

0 0 0

Sample Output

rddr


Solution:

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);
        int n = scn.nextInt();
        int m = scn.nextInt();
        int[][] arr = new int[n][m];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                arr[i][j] = scn.nextInt();
            }
        }
        boolean visited[][] = new boolean[n][m];
        floodfill(arr, 0, 0, "", visited);
    }
    
    // asf -> answer so far
    public static void floodfill(int[][] maze, int sr, int sc, String asf, boolean visited[][]) {
        if(sr<0 || sc<0 || (sr==maze.length) || sc==maze[0].length || maze[sr][sc] == 1 || visited[sr][sc] == true) return;
        if(sr == (maze.length-1) && sc == (maze[0].length-1)){
            System.out.println(asf);
            return;
        }
        visited[sr][sc] = true;
        floodfill(maze,sr-1,sc,asf+"t",visited);
        floodfill(maze,sr,sc-1,asf+"l",visited);
        floodfill(maze,sr+1,sc,asf+"d",visited);
        floodfill(maze,sr,sc+1,asf+"r",visited);
        visited[sr][sc] = false;
    }
}

Comments

Popular posts from this blog

NTA Declares JEE (Main)-2021 (February Session) NTA Scores for Paper 1 (B.E./B.Tech.) | JEE Mains 2021

The JEE (Main) Examination for B.E./B.Tech. was conducted by NTA from 24 to 26 February 2021. A total number of 6.52 lacs candidates were registered for Paper 1 (B.E. /B. Tech.) in this examination.  The Examination was conducted in 331 Cities [including 9 cities outside India in Colombo, Doha, Dubai, Kathmandu, Muscat, Riyadh, Sharjah, Singapore, and Kuwait] in 828 Centres.  A total number of 742 Observers, 261 City-Coordinators, 19 Regional Coordinators, 06 Special Coordinators & 02 National Coordinators were deployed at these centres to oversee the smooth and fair conduct of the examination.  The examination for Paper 1 (B.E. /B. Tech.) was conducted in a total of 6 shifts from 24 to 26 February 2021. The scores of Paper 1 (B.E./B.Tech.) are being declared today.   The Examination was conducted for the first time in 13 languages (English, Hindi, Gujarati along with Assamese, Bengali, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu, and Urdu).  T...

Display of Provisional Answer Keys and Question Paper with Recorded Responses for Answer Key Challenge | JEE (Main) 2021 Session 4 for Paper 1 (B.E./B.Tech.)

The JEE (Main) - 2021 Session - 4 was conducted throughout the country and abroad on 26, 27, 31 August and 1 September 2021 for Paper 1 (B.E./B.Tech.) in the Computer Based Test (CBT) mode. The National Testing Agency has uploaded the Provisional Answer Keys for Paper 1 (B.E./B.Tech.) along with the Question Paper with Recorded Responses on the website https://jeemain.nta.nic.in for candidates to challenge. The procedure (as enclosed) for the challenge of Answer Key may be used. The candidates, who are not satisfied with the answer key, may challenge the same by paying a fee of ₹ 200/- (Rupees Two Hundred only) per question challenged as a non-refundable processing fee. This facility is available from 06 September 2021 to 08 September 2021 (up to 10:00 A.M.). The payment of the processing fee may be made through, Debit card/Credit Card/Net Banking/Paytm upto 08 September 2021 (upto 11:00 A.M.). No challenge will be entertained without receipt of the processing fee. The Challenges will ...

CSAB Special round for NITs, IIITs and CFTIS 2018

CSAB Special round for NITs, IIITs and CFTIS 2 018 After the  seat allotment of JoSAA 2018  is completed, CSAB will conduct a special round of counselling for NITs, IIITs and CFTIs through CSAB. The allotment will be open only for those candidates who have successfully completed their  JEE Main 2018   examination and secured valid scores. Exclusive:   JoSAA Counselling 2021, Documents Required... CSAB 2018 Special Round 1 Seat Allotment Result CSAB 2018 Special Round 1 Opening and Closing Rank Important Dates of CSAB Special round for NITs, IIITs and CFTIS 2018 S.No Events Important Dates (Tentative) 1 Registration and Choice Filling Fourth week of July 2018 2 Announcement of Seat Allotment Fourth week of July 2018 3 Reporting to Allotted Institutes First week of August 2018 click here to get full schedule... Eligibility Criteria of CSAB Special round ...