Auf Thema antworten

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]



Oben