使用API方法时如何计算时间复杂度?
How to calculate the time complexity when you use an API method?
我最近正在学习如何计算时间和 space 复杂度。我知道如何计算基本的。但是,当涉及到一些预构建的方法时,我感到困惑。比如下面的代码在Stringclass中使用了indexOf()方法,我该如何计算呢?谢谢!
class Solution {
public String longestCommonPrefix(String[] strs) {
String prefix = strs[0];
for(int i = 1; i < strs.length; i ++){
while(strs[i].indexOf(prefix) != 0){
prefix = prefix.substring(0,prefix.length()-1);
}
}return prefix;
}
}
正如评论中所写,现有的 answer 建议:
There is nothing like time complexity of a program. We calculate time complexity for algorithms or, in the context of programming, for individual (atomic) functions.
但要回答隐含的“如何在面试中处理这个问题?”:
- 在上面的例子中,理解有显式循环。如果你专注于此,你可以估计内部循环体被执行了多少次
- 从那里,您可以“在精神上”内联该库调用
- 导致:您建议检查库方法的源代码以了解其运行时成本
我最近正在学习如何计算时间和 space 复杂度。我知道如何计算基本的。但是,当涉及到一些预构建的方法时,我感到困惑。比如下面的代码在Stringclass中使用了indexOf()方法,我该如何计算呢?谢谢!
class Solution {
public String longestCommonPrefix(String[] strs) {
String prefix = strs[0];
for(int i = 1; i < strs.length; i ++){
while(strs[i].indexOf(prefix) != 0){
prefix = prefix.substring(0,prefix.length()-1);
}
}return prefix;
}
}
正如评论中所写,现有的 answer 建议:
There is nothing like time complexity of a program. We calculate time complexity for algorithms or, in the context of programming, for individual (atomic) functions.
但要回答隐含的“如何在面试中处理这个问题?”:
- 在上面的例子中,理解有显式循环。如果你专注于此,你可以估计内部循环体被执行了多少次
- 从那里,您可以“在精神上”内联该库调用
- 导致:您建议检查库方法的源代码以了解其运行时成本