1992. Find All Groups of Farmland | leetcode daily challenge | DSA | Hindi | shashwat

Поділитися
Вставка
  • Опубліковано 18 жов 2024

КОМЕНТАРІ • 8

  • @yashhingu7955
    @yashhingu7955 6 місяців тому

    I used same approach 😊

  • @aadityapatel4546
    @aadityapatel4546 6 місяців тому +1

    my dfs approach :
    class Solution {
    int row;
    int col;
    ArrayList ansal;
    public int[][] findFarmland(int[][] land) {
    row=land.length;
    col=land[0].length;
    ansal=new ArrayList();
    for(int i=0;i

  • @AdityaKumar-wq3nb
    @AdityaKumar-wq3nb 6 місяців тому

    class Solution {
    public:
    void findcorner(vector& land,int i,int j,vector& ans){
    int n=land.size();
    int m=land[0].size();
    vectortemp(4,-1);
    temp[0]=i;
    temp[1]=j;
    while(i

    • @AdityaKumar-wq3nb
      @AdityaKumar-wq3nb 6 місяців тому

      without dfs ithink this is more optimal than dfs anyone tel me?

    • @AdityaKumar-wq3nb
      @AdityaKumar-wq3nb 6 місяців тому

      lol i didnt watched the video the video have same appproch

  • @ankitpatel0101
    @ankitpatel0101 6 місяців тому

    class Solution {
    public static int startX = 0;
    public static int startY = 0;
    public static int endX = 0;
    public static int endY = 0;

    public int[][] findFarmland(int[][] land) {
    ArrayList ansList = new ArrayList();
    for (int i = 0; i < land.length; i++) {
    for (int j = 0; j < land[0].length; j++) {
    if (land[i][j] == 1) {
    startX = i;
    startY = j;
    endX = i;
    endY = j;
    dfs(land, i, j);
    ansList.add(new int[] { startX, startY, endX, endY });
    }
    }
    }
    return ansList.toArray(new int[ansList.size()][]);
    }
    private static void dfs(int[][] land, int i, int j) {
    int n = land.length;
    int m = land[0].length;
    // out of bounds
    if (i < 0 || i >= n || j < 0 || j >= m) {
    return;
    }
    // visited for forest land
    if (land[i][j] == 0 || land[i][j] == -1) {
    return;
    }
    // work
    endX = Math.max(endX, i);
    endY = Math.max(endY, j);
    land[i][j] = -1;
    // check again
    dfs(land, i - 1, j);
    dfs(land, i, j + 1);
    dfs(land, i + 1, j);
    dfs(land, i, j - 1);
    }
    }