我已经知道这个问题的答案是O(N^2)
,但我看不出如何。我知道 for 循环运行了 N
次,但它怎么能运行N^2
次呢?
public static String rev(String s) {
String r = "";
int N = s.length();
for (int i = 0; i < N; i++) {
r = s.charAt(i) + r;
}
return r;
}
在Java中,循环中的String
连接r = s.charAt(i) + r
是O(N^2)
的,因为Strings
是不可变的 - 在每个连接上都会创建一个String
的新副本。