Розмір відео: 1280 X 720853 X 480640 X 360
Показувати елементи керування програвачем
Автоматичне відтворення
Автоповтор
I used same approach 😊
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
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
without dfs ithink this is more optimal than dfs anyone tel me?
lol i didnt watched the video the video have same appproch
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); }}
I used same approach 😊
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
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
without dfs ithink this is more optimal than dfs anyone tel me?
lol i didnt watched the video the video have same appproch
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);
}
}