This commit is contained in:
youngyangyang04
2022-03-31 15:09:10 +08:00
parent 77aa72b984
commit 6259a0e317
45 changed files with 210 additions and 210 deletions

View File

@@ -36,7 +36,7 @@
一些同学会使用split库函数分隔单词然后定义一个新的string字符串最后再把单词倒序相加那么这道题题目就是一道水题了失去了它的意义。
所以这里我还是提高一下本题的难度:**不要使用辅助空间,空间复杂度要求为$O(1)$。**
所以这里我还是提高一下本题的难度:**不要使用辅助空间空间复杂度要求为O(1)。**
不能使用辅助空间之后,那么只能在原字符串上下功夫了。
@@ -81,11 +81,11 @@ void removeExtraSpaces(string& s) {
如果不仔细琢磨一下erase的时间复杂读还以为以上的代码是$O(n)$的时间复杂度呢。
想一下真正的时间复杂度是多少一个erase本来就是$O(n)$的操作erase实现原理题目[数组:就移除个元素很难么?](https://programmercarl.com/0027.移除元素.html),最优的算法来移除元素也要$O(n)$
想一下真正的时间复杂度是多少一个erase本来就是O(n)的操作erase实现原理题目[数组:就移除个元素很难么?](https://programmercarl.com/0027.移除元素.html)最优的算法来移除元素也要O(n)。
erase操作上面还套了一个for循环那么以上代码移除冗余空格的代码时间复杂度为$O(n^2)$
erase操作上面还套了一个for循环那么以上代码移除冗余空格的代码时间复杂度为O(n^2)。
那么使用双指针法来去移除空格最后resize重新设置一下字符串的大小就可以做到$O(n)$的时间复杂度。
那么使用双指针法来去移除空格最后resize重新设置一下字符串的大小就可以做到O(n)的时间复杂度。
如果对这个操作比较生疏了,可以再看一下这篇文章:[数组:就移除个元素很难么?](https://programmercarl.com/0027.移除元素.html)是如何移除元素的。