这个字谜检查器的时间复杂度是多少?
What's the time complexity of this anagram checker?
这个方法的时间复杂度是多少?我读到 String 的 contains()
方法的时间复杂度是 O(n) 并且我在我的循环中使用它遍历输入字符串是时间复杂度 O(n2)?
public static boolean isAnagram(String str, String str1) {
if(str.length() != str1.length()) {
return false;
}
for(int i = 0; i < str.length(); i++) {
String letter = String.valueOf(str.charAt(i));
if(!str1.contains(letter)) {
return false;
}
letter = String.valueOf(str1.charAt(i));
if(!str.contains(letter)) {
return false;
}
}
return true;
}
是的 O(n^2) 因为 for 循环有 n 次迭代并且每次迭代调用包含两次
这个方法的时间复杂度是多少?我读到 String 的 contains()
方法的时间复杂度是 O(n) 并且我在我的循环中使用它遍历输入字符串是时间复杂度 O(n2)?
public static boolean isAnagram(String str, String str1) {
if(str.length() != str1.length()) {
return false;
}
for(int i = 0; i < str.length(); i++) {
String letter = String.valueOf(str.charAt(i));
if(!str1.contains(letter)) {
return false;
}
letter = String.valueOf(str1.charAt(i));
if(!str.contains(letter)) {
return false;
}
}
return true;
}
是的 O(n^2) 因为 for 循环有 n 次迭代并且每次迭代调用包含两次