Ne, du musst nicht hinten anfangen. Der Greedy-Algo will in dem Fall mit dem vorhandenen Benzin soweit wie möglich fahren.
Meine Lösung wäre:
[code=Java]
public static void main (String [] args) {
int n = 50;
int [] tankstellen = {34,50,55,71,80,90};
int z= 100;
int[] stopps = tankstopps (50, new int[]{5, 12, 34, 51, 71, 83, 90, 120}, 100 );
System.out.println(Arrays.toString(stopps));
}
static int [] tankstopps (int n, int [] tankstellen, int z) {
int [] stopps= new int[tankstellen.length];
int t = 0;
int rechweite = n;
while(rechweite < z){ // solange Reichweite kleiner als Strecke ist
// fahre so lange bis Reichweite kleiner als die Position der aktuellen Tankstelle ist
if(rechweite < tankstellen[t]){
stopps[t-1] = 1; // tanke an der letzten Tankstelle
rechweite = tankstellen[t-1] + n; // neue Reichweite ist Tankstelle-km + Tankgröße
}
t++;
}
return stopps;
}
[/code]