Skip to content

Instantly share code, notes, and snippets.

@pete-proton
Created March 22, 2021 09:45
Show Gist options
  • Save pete-proton/142b4fcab0311c0d478aae7098da2d48 to your computer and use it in GitHub Desktop.
Save pete-proton/142b4fcab0311c0d478aae7098da2d48 to your computer and use it in GitHub Desktop.
River Sizes Poblem
import java.util.*;
class Program {
public static List<Integer> riverSizes(int[][] matrix) {
var sizes = new ArrayList<Integer>();
for(var i=0; i < matrix.length; i++) {
for (var j=0; j < matrix[i].length; j++) {
var size = size(i, j, matrix);
if (size > 0) {
sizes.add(size);
}
}
}
return sizes;
}
private static int size(int i, int j, int[][] matrix) {
if (i < 0 || i >= matrix.length ||
j < 0 || j >= matrix[i].length ||
matrix[i][j] == 0) {
return 0;
}
matrix[i][j] = 0;
return 1 +
size(i + 1, j, matrix) +
size(i - 1, j, matrix) +
size(i , j + 1, matrix) +
size(i , j - 1, matrix);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment