如何使此代码更有效(更快)?
它是关于一款叫做Pebble Solitaire"的游戏。它与Peg Solitaire相同,但只有一条线(鹅卵石没有放在十字架上)。
如果是" oooooooooo-ooooooooooo - "输出应该是每个移动组合场景中留下的最少量的鹅卵石。
这怎么会变得更有效?
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
long startTime = System.currentTimeMillis();
posSol = new ArrayList<>();
posSol.add(reader.nextLine());
int minimumNoOfPebbles = 23;
for (int y = 0; y < posSol.size(); y++) {
String s = posSol.get(y);
for (int i = 0; i <= s.length() - 1; i++) {
if (s.charAt(i) == 'o') {
if (i <= s.length() - 2 && s.charAt(i + 1) == 'o' && s.charAt(i + 2) == '-') {
String temp = s.substring(0, i) + "--o" + s.substring(i + 3);
posSol.add(temp);
}
if (i >= 2 && s.charAt(i - 1) == 'o' && s.charAt(i - 2) == '-') {
String temp = s.substring(0, i - 2) + "o--" + s.substring(i + 1);
posSol.add(temp);
}
}
}
int counter = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'o') {
counter++;
}
}
if (minimumNoOfPebbles > counter) {
minimumNoOfPebbles = counter;
}
}
System.out.println(minimumNoOfPebbles);
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println(totalTime);
}