1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public static <T> int nbPositions(List<T> lv, int pos) {
if (lv.get(pos) == null)
return 1;
int gauche = nbPositions(lv, pos + 1);
int droite = nbPositions(lv, pos + gauche + 1);
return gauche + droite + 1;
}
public static void main(String args[]) {
List<Integer> lv = Arrays.asList(20, 18, 3, null, 14, 7, null, 10, null, null, null, null, 42, 26, null, 39, 30, null, 34, null, null, null, null);
System.out.println(nbPositions(lv, 12)); // 11
System.out.println(nbPositions(lv, 4)); // 7
System.out.println(nbPositions(lv, 7)); // 3
} |
Partager