我的目标是确保for循环操作的时间复杂度不大于两个字符串的长度。所以在这个例子中,如果我算数正确,O(m-n)不能大于O(28)。我很确定这与长度完全相同,但我对Time Complexity并不熟悉。
所以我的问题是,for循环的时间复杂度是多少?
所以我意识到时间复杂度是m * n,这将大于两个字符串的长度。我知道它不赞成,但有没有人知道如何进一步减少它?
要清楚,程序正在检查String str以查看它是否包含String set中的任何字符。如果它匹配,程序应该打印第一个匹配的索引而不是退出。这只是我稍后要添加的另一个if语句。
代码:
String str = "ThisIsTesTingComplexity";
String set = "t9123";
for(int j = 0;j<str.length();j++)
for(int i = 0;i<set.length();i++)
if(str.charAt(j)==set.charAt(i))
System.out.print(j);
答案 0 :(得分:0)
在这里,您显然有O(n*m)
时间复杂度。只计算循环的迭代次数:对于第一个循环的每次迭代,第二个循环执行m次迭代,并且第一次循环有n次迭代。 CQFD。