algorithm - 我对这个算法的时间复杂度的解释正确吗?
问题描述
string solve(string s) {
string answer;
int n = s.size();
int j = 0;
int count = 0;
for (int i = 0; i < n;) {
char character = s[i];
while (j < n && s[j] == character) {
j++;
}
answer.append(to_string(j - i));
answer.append(1, character);
i = j;
}
return answer;
我相信这个算法的时间复杂度是 O(N),因为在 for 循环的每次迭代中,j 至少增加 1,并且 i 设置为修改后的 j。这导致上面的算法简单地遍历字符串。我对算法的解释正确吗?
谢谢你。
解决方案
推荐阅读
- c# - 使用 MS Graph SDK 进行文件搜索不起作用
- javascript - 映射函数的参数不能用于客户端操作
- node.js - 在 WSSecurityCert() 方法肥皂节点 js 中设置摘要算法
- c++ - 我想知道为什么用向量而不是数组可以成功?
- html - 如何将视频元素内的 div 重叠为 9 部分响应?
- flutter - 如何将 StatefulWidget 的构造函数参数传递给 State?
- react-native - 将本机使用效果滚动到选定的项目对象
- api - 如果电子邮件(或其他)存在,我应该返回哪个 HTTP 响应?
- asp.net - 验证 1000 个外部 URL 的 ASP.Net 问题
- unity3d - LineRenderer 绘制的线即使在应用 Rigidbody2d 后也不会下降