Re: [algogeeks] Re: Urgent sol needed
@shruti ...u have used 2 arrays row n col extra? On Mon, Oct 3, 2011 at 11:47 PM, Ankur Garg wrote: > Many times this problem has been discussed ..Please check the archives yaar > :( > > > > On Mon, Oct 3, 2011 at 11:39 PM, Shruti Gupta wrote: > >> I had inserted 0 instead of 1 The corrected code will be: >> public static void setZeros(int[][] matrix) { >>int[] row = new int[matrix.length]; >>int[] column = new int[matrix[0].length]; >>// Store the row and column index with value 0 >> for (int i = 0; i < matrix.length; i++) { >> for (int j = 0; j < matrix[0].length;j++) { >> if (matrix[i][j] == 1) { >> row[i] = 1; >> column[j] = 1; >> } >> } >> >> } >> >> // Set arr[i][j] to 0 if either row i or column j has a 0 >>for (int i = 0; i < matrix.length; i++) { >> for (int j = 0; j < matrix[0].length; j++) { >> if ((row[i] == 1 || column[j] == 1)) { >>matrix[i][j] = 1; >> } >> } >> } >> >> On Oct 3, 11:06 pm, Shruti Gupta wrote: >> > Hi! >> > A effecient way to solve the problem in O(1) space is by making use of >> > the fact that instead of keeping track of which cell has a 0, we can >> > just know which row or column has zero, as eventually that row/col >> > will become 0. The code looks like this: >> > >> > public static void setZeros(int[][] matrix) { >> > int[] row = new int[matrix.length]; >> > int[] column = new int[matrix[0].length]; >> > // Store the row and column index with value 0 >> > for (int i = 0; i < matrix.length; i++) { >> >for (int j = 0; j < matrix[0].length;j++) { >> >if (matrix[i][j] == 0) { >> > row[i] = 1; >> > column[j] = 1; >> > } >> > } >> > >> > } >> > >> > // Set arr[i][j] to 0 if either row i or column j has a 0 >> > for (int i = 0; i < matrix.length; i++) { >> >for (int j = 0; j < matrix[0].length; j++) { >> >if ((row[i] == 1 || column[j] == 1)) { >> > matrix[i][j] = 0; >> >} >> > } >> > } >> > >> > Thus there is no extra space taken. >> > >> > Shruti >> > >> > On Oct 3, 12:27 am, rahul sharma wrote: >> > >> > >> > >> > >> > >> > >> > >> > > nput is a matrix of size n x m of 0s and 1s. >> > >> > > eg: >> > > 1 0 0 1 >> > > 0 0 1 0 >> > > 0 0 0 0 >> > >> > > If a location has 1; make all the elements of that row and column = 1. >> eg >> > >> > > 1 1 1 1 >> > > 1 1 1 1 >> > > 1 0 1 1 >> > >> > > Solution should be with Time complexity = O(n*m) and O(1) extra space >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
Re: [algogeeks] Re: Urgent sol needed
Many times this problem has been discussed ..Please check the archives yaar :( On Mon, Oct 3, 2011 at 11:39 PM, Shruti Gupta wrote: > I had inserted 0 instead of 1 The corrected code will be: > public static void setZeros(int[][] matrix) { >int[] row = new int[matrix.length]; >int[] column = new int[matrix[0].length]; >// Store the row and column index with value 0 > for (int i = 0; i < matrix.length; i++) { > for (int j = 0; j < matrix[0].length;j++) { > if (matrix[i][j] == 1) { > row[i] = 1; > column[j] = 1; > } > } > > } > > // Set arr[i][j] to 0 if either row i or column j has a 0 >for (int i = 0; i < matrix.length; i++) { > for (int j = 0; j < matrix[0].length; j++) { > if ((row[i] == 1 || column[j] == 1)) { >matrix[i][j] = 1; > } > } > } > > On Oct 3, 11:06 pm, Shruti Gupta wrote: > > Hi! > > A effecient way to solve the problem in O(1) space is by making use of > > the fact that instead of keeping track of which cell has a 0, we can > > just know which row or column has zero, as eventually that row/col > > will become 0. The code looks like this: > > > > public static void setZeros(int[][] matrix) { > > int[] row = new int[matrix.length]; > > int[] column = new int[matrix[0].length]; > > // Store the row and column index with value 0 > > for (int i = 0; i < matrix.length; i++) { > >for (int j = 0; j < matrix[0].length;j++) { > >if (matrix[i][j] == 0) { > > row[i] = 1; > > column[j] = 1; > > } > > } > > > > } > > > > // Set arr[i][j] to 0 if either row i or column j has a 0 > > for (int i = 0; i < matrix.length; i++) { > >for (int j = 0; j < matrix[0].length; j++) { > >if ((row[i] == 1 || column[j] == 1)) { > > matrix[i][j] = 0; > >} > > } > > } > > > > Thus there is no extra space taken. > > > > Shruti > > > > On Oct 3, 12:27 am, rahul sharma wrote: > > > > > > > > > > > > > > > > > nput is a matrix of size n x m of 0s and 1s. > > > > > eg: > > > 1 0 0 1 > > > 0 0 1 0 > > > 0 0 0 0 > > > > > If a location has 1; make all the elements of that row and column = 1. > eg > > > > > 1 1 1 1 > > > 1 1 1 1 > > > 1 0 1 1 > > > > > Solution should be with Time complexity = O(n*m) and O(1) extra space > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
[algogeeks] Re: Urgent sol needed
I had inserted 0 instead of 1 The corrected code will be: public static void setZeros(int[][] matrix) { int[] row = new int[matrix.length]; int[] column = new int[matrix[0].length]; // Store the row and column index with value 0 for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length;j++) { if (matrix[i][j] == 1) { row[i] = 1; column[j] = 1; } } } // Set arr[i][j] to 0 if either row i or column j has a 0 for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if ((row[i] == 1 || column[j] == 1)) { matrix[i][j] = 1; } } } On Oct 3, 11:06 pm, Shruti Gupta wrote: > Hi! > A effecient way to solve the problem in O(1) space is by making use of > the fact that instead of keeping track of which cell has a 0, we can > just know which row or column has zero, as eventually that row/col > will become 0. The code looks like this: > > public static void setZeros(int[][] matrix) { > int[] row = new int[matrix.length]; > int[] column = new int[matrix[0].length]; > // Store the row and column index with value 0 > for (int i = 0; i < matrix.length; i++) { > for (int j = 0; j < matrix[0].length;j++) { > if (matrix[i][j] == 0) { > row[i] = 1; > column[j] = 1; > } > } > > } > > // Set arr[i][j] to 0 if either row i or column j has a 0 > for (int i = 0; i < matrix.length; i++) { > for (int j = 0; j < matrix[0].length; j++) { > if ((row[i] == 1 || column[j] == 1)) { > matrix[i][j] = 0; > } > } > } > > Thus there is no extra space taken. > > Shruti > > On Oct 3, 12:27 am, rahul sharma wrote: > > > > > > > > > nput is a matrix of size n x m of 0s and 1s. > > > eg: > > 1 0 0 1 > > 0 0 1 0 > > 0 0 0 0 > > > If a location has 1; make all the elements of that row and column = 1. eg > > > 1 1 1 1 > > 1 1 1 1 > > 1 0 1 1 > > > Solution should be with Time complexity = O(n*m) and O(1) extra space -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
[algogeeks] Re: Urgent sol needed
Hi! A effecient way to solve the problem in O(1) space is by making use of the fact that instead of keeping track of which cell has a 0, we can just know which row or column has zero, as eventually that row/col will become 0. The code looks like this: public static void setZeros(int[][] matrix) { int[] row = new int[matrix.length]; int[] column = new int[matrix[0].length]; // Store the row and column index with value 0 for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length;j++) { if (matrix[i][j] == 0) { row[i] = 1; column[j] = 1; } } } // Set arr[i][j] to 0 if either row i or column j has a 0 for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[0].length; j++) { if ((row[i] == 1 || column[j] == 1)) { matrix[i][j] = 0; } } } Thus there is no extra space taken. Shruti On Oct 3, 12:27 am, rahul sharma wrote: > nput is a matrix of size n x m of 0s and 1s. > > eg: > 1 0 0 1 > 0 0 1 0 > 0 0 0 0 > > If a location has 1; make all the elements of that row and column = 1. eg > > 1 1 1 1 > 1 1 1 1 > 1 0 1 1 > > Solution should be with Time complexity = O(n*m) and O(1) extra space -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.