Jetzt arbeite ich mit dem rekursiven Zurückverfolgen, meine Aufgabe ist es, den längsten Pfad im Labyrinth zu finden, die Masse wird als das Feld dargestellt, das mit den Koordinaten bedeckt ist, und die Koordinaten der Wände sind wund in der Datei. Ich habe einen Parser gemacht, um die Eingabedatei zu analysieren und die Wände zu bauen, aber ich habe diese Koordinaten auch im Array eines Objekttyps Coordinate gespeichert, um zu prüfen, ob es möglich ist, das nächste Stück der "Schlange" auf die zu verschieben nächstes Feld, dann habe ich diese Methode erstellt, jetzt habe ich verstanden, dass ich eine Methode brauche, um die letzte Koordinate aus dem Array zu entfernen, wenn ich Backtracking verwenden werde, wie kann ich es tun? Das Ziel ist nicht Array-Listen zu verwenden oder verknüpft Listet nur Arrays auf! Vielen Dank!Wie lösche ich das letzte Element aus einem Array?
public class Coordinate {
int xCoord;
int yCoord;
Coordinate(int x,int y) {
this.xCoord=x;
this.yCoord=y;
}
public int getX() {
return this.xCoord;
}
public int getY() {
return this.yCoord;
}
public String toString() {
return this.xCoord + "," + this.yCoord;
}
}
Und
public class Row {
static final int MAX_NUMBER_OF_COORD=1000;
Coordinate[] coordArray;
int numberOfElements;
Row(){
coordArray = new Coordinate[MAX_NUMBER_OF_COORD];
numberOfElements=0;
}
void add(Coordinate toAdd) {
coordArray[numberOfElements]=toAdd;
numberOfElements +=1;
}
boolean ifPossible(Coordinate c1){
for(int i=0;i<numberOfElements;i++){
if(coordArray[i].xCoord==c1.xCoord && coordArray[i].yCoord==c1.yCoord){
return false;
}
}
return true;
}
}
Ist 'arrays' zwingend benutzen? Sie könnten mit Objektvariation wie 'ArrayList' gehen oder andere hilfreiche Methoden geben. –
Ja, es ist obligatorisch, ich weiß, es ist dumm, sie zu benutzen, aber es ist obligatorisch! –