最近,我尝试开始竞争性编程,对“find”语句非常好奇。我们知道 find 语句,就像下面的例子一样,可以代替第二个 for 循环。通过替换它,我很好奇时间符号是否仍然保持不变,O(n^2) 还是减少到 O(n)?谢谢你的回答。
for(int i = 0; i < string.size(); i++) {
auto it = find(string.begin(), string.end(), 3);
int index = it - string.begin();
vector[i] = string[index - 1];
}
int d;
for(int i = 0; i < s2.size(); i++) {
for(int u = 0; u < 26; u++) {
if(u == string[i]) {
d = u;
}
}
vector[i] = string[d - 1];
}
我正在研究这个问题。但是,我仍然很困惑。对不起,如果这是一个多余的问题。