Hola
Ese error se debe a que entras en un bucle infinito y excedes la memoria
Código Java:
Ver originalpublic static int demasiadoalto(int[] demasiadoalto, int alturacorte, int maderapedida, int liminf){
int limsup = alturacorte;// linea 26
alturacorte = alturacorte-(alturacorte-liminf)/2;
if (maderapedida != maderarecolecta(demasiadoalto,alturacorte)){
if (maderapedida < maderarecolecta(demasiadoalto,alturacorte))//linea 30
alturacorte=demasiadoalto(demasiadoalto,alturacorte,maderapedida,liminf);
else if (maderapedida > maderarecolecta(demasiadoalto,alturacorte))
alturacorte=demasiadobajo(demasiadoalto,alturacorte,maderapedida,limsup);
}
return alturacorte;
};
si te fijas "maderapedida" siempre tiene el mismo valor, por lo tanto llamas una y otra vez al método demasiadoalto