Thomas Darimont
Erfahrenes Mitglied
Hallo,
vielen Dank
ich hab mich auch mal mit Scala dran versucht (einfache Variante ohne Pfad) und komme zu den gleichen Ergebnissen:
Ich versuche den reduceRight-Abschnitt noch etwas schicker hinzubekommen...
das geht sicherlich noch ein Stückchen einfacher.
Das mit dem Pfad mitmerken habe ich auch sieht aber wegen dem notwendigem Bookeeping sehr unschön aus...
Streckenname Höhe längster Pfad
Gruß Tom
vielen Dank
ich hab mich auch mal mit Scala dran versucht (einfache Variante ohne Pfad) und komme zu den gleichen Ergebnissen:
Java:
package de.tutorials.contests
import scala.io._
object PistenYodeler2 {
def main(args:Array[String]):Unit = {
var lines = Source.fromFile( "data/pisten.txt" ).getLines
while(lines.hasNext){
var name = lines.next.trim
var height = Integer.parseInt(lines.next.trim)
//Transformiere Zeilen zu int[]
var levels = lines.take(height).map(line => line.trim.split(" ").map(token => Integer.parseInt(token)))
/*
* greedy hillclimbing
*/
var result = levels.reduceRight((top,bottom)=>
{
var i = 0
top.map(
topGain =>{
var gain = topGain + (if (bottom.length == 1) bottom(0) else Math.max(bottom(i),bottom(i+1)))
i+=1
gain
}
)
}
)
println(name + " " + height +" longest path: " + result(0))
}
}
}
das geht sicherlich noch ein Stückchen einfacher.
Das mit dem Pfad mitmerken habe ich auch sieht aber wegen dem notwendigem Bookeeping sehr unschön aus...
Streckenname Höhe längster Pfad
Code:
Vordertux 4 longest path: 23
Hindelang-Oberjoch 59 longest path: 652
Jungholz 55 longest path: 611
Wertach 95 longest path: 1030
Oy-Mittelberg 95 longest path: 1060
Bolsterlang 59 longest path: 658
Ofterschwang 58 longest path: 641
Obermaiselstein 56 longest path: 608
Balderschwang 59 longest path: 660
Immenstadt 89 longest path: 965
Gruß Tom