我已经知道这个问题的答案是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;
}
答案 0 :(得分:5)
在Java中,String
在循环中的串联r = s.charAt(i) + r
是O(N^2)
,因为Strings
是不可变的–在每个String
上都创建了一个{{1}}的新副本串联。