public class StiBeregner{ private int[][] minTrekant; public StiBeregner(String filnavn) { minTrekant = TrekantLeser.lesTrekantFraFil(filnavn); } public int beregnLengsteSti() { return beregnLengsteStiRekursivt(0, 0); } private int beregnLengsteStiRekursivt(int hoyde, int bredde) { int minVerdi = minTrekant[hoyde][bredde]; if (hoyde == minTrekant.length - 1) { return minVerdi; } //int minVerdi = minTrekant[hoyde][bredde]; //System.out.println(hoyde + "," + bredde + ": g?r til VENSTRE" ); int venstreSubtre = beregnLengsteStiRekursivt(hoyde + 1, bredde); //System.out.println(hoyde + "," + bredde + ": g?r til H?YRE" ); int hoyreSubtre = beregnLengsteStiRekursivt(hoyde + 1, bredde + 1); if (venstreSubtre > hoyreSubtre) { return venstreSubtre + minVerdi; } else { return hoyreSubtre + minVerdi; } } public void skrivMinTrekant() { TrekantLeser.skrivUtTrekant(minTrekant); } }