mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-06 23:28:29 +08:00
Update
This commit is contained in:
@ -9,13 +9,13 @@ LeetCode 最强题解(持续更新中):
|
||||
|[0018.四数之和](https://github.com/youngyangyang04/leetcode/blob/master/problems/0018.四数之和) | 数组 |中等|**双指针**|
|
||||
|[0021.合并两个有序链表](https://github.com/youngyangyang04/leetcode/blob/master/problems/0021.合并两个有序链表.md) |链表 |简单|**模拟** |
|
||||
|[0026.删除排序数组中的重复项](https://github.com/youngyangyang04/leetcode/blob/master/problems/0026.删除排序数组中的重复项.md) |数组 |简单|**暴力** **快慢指针** |
|
||||
|[0027.移除元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0027.移除元素.md) |数组 |简单| **暴力** **快慢指针**|
|
||||
|[0027.移除元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0027.移除元素.md) |数组 |简单| **暴力** **快慢指针/双指针**|
|
||||
|[0028.实现strStr()](https://github.com/youngyangyang04/leetcode/blob/master/problems/0028.实现strStr().md) |字符串 |简单| **KMP** |
|
||||
|[0035.搜索插入位置](https://github.com/youngyangyang04/leetcode/blob/master/problems/0035.搜索插入位置.md) |数组 |简单| **暴力** **二分**|
|
||||
|[0053.最大子序和](https://github.com/youngyangyang04/leetcode/blob/master/problems/0053.最大子序和.md) |数组 |简单|**暴力** **贪心** 动态规划 分治|
|
||||
|[0059.螺旋矩阵II](https://github.com/youngyangyang04/leetcode/blob/master/problems/0059.螺旋矩阵II.md) |数组 |中等|**模拟**|
|
||||
|[0083.删除排序链表中的重复元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0083.删除排序链表中的重复元素.md) |链表 |简单|**模拟**|
|
||||
|[0142.环形链表II](https://github.com/youngyangyang04/leetcode/blob/master/problems/0142.环形链表II.md) |链表 |中等|**模拟**|
|
||||
|[0142.环形链表II](https://github.com/youngyangyang04/leetcode/blob/master/problems/0142.环形链表II.md) |链表 |中等|**快慢指针/双指针**|
|
||||
|[0151.翻转字符串里的单词](https://github.com/youngyangyang04/leetcode/blob/master/problems/0151.翻转字符串里的单词.md) |字符串 |中等|**模拟**|
|
||||
|[0202.快乐数](https://github.com/youngyangyang04/leetcode/blob/master/problems/0202.快乐数.md) |哈希表 |简单|**哈希**|
|
||||
|[0203.移除链表元素](https://github.com/youngyangyang04/leetcode/blob/master/problems/0203.移除链表元素.md) |链表 |简单|**模拟** **虚拟头结点**|
|
||||
@ -34,7 +34,7 @@ LeetCode 最强题解(持续更新中):
|
||||
|[0575.分糖果.md](https://github.com/youngyangyang04/leetcode/blob/master/problems/0575.分糖果.md) |哈希表 |简单|**哈希**|
|
||||
|[0705.设计哈希集合](https://github.com/youngyangyang04/leetcode/blob/master/problems/0705.设计哈希集合.md) |哈希表 |简单|**模拟**|
|
||||
|[0707.设计链表](https://github.com/youngyangyang04/leetcode/blob/master/problems/0707.设计链表.md) |链表 |中等|**模拟**|
|
||||
|[剑指Offer05.替换空格](https://github.com/youngyangyang04/leetcode/blob/master/problems/剑指Offer05.替换空格.md) |字符串 |简单|**模拟**|
|
||||
|[剑指Offer05.替换空格](https://github.com/youngyangyang04/leetcode/blob/master/problems/剑指Offer05.替换空格.md) |字符串 |简单|**双指针**|
|
||||
|
||||
Leetcode精选:
|
||||
|
||||
|
BIN
pics/剑指Offer05.替换空格.png
Normal file
BIN
pics/剑指Offer05.替换空格.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
@ -1,16 +1,22 @@
|
||||
## 题目地址
|
||||
https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
|
||||
|
||||
|
||||
## 思路
|
||||
|
||||
如果想把这道题目做到极致,就不要只用额外的辅助空间,先扩充数组到每个空格替换成"%20"之后的大小
|
||||
然后从后向前替换空格
|
||||
然后从后向前替换空格,双指针法:
|
||||
|
||||
思路如下:
|
||||
<video src="../video/替换空格.mp4" controls="controls" width="640" height="320" autoplay="autoplay">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
|
||||
时间复杂度,空间复杂度均超过100%的用户
|
||||
|
||||
<img src='../pics/剑指Offer05.替换空格.png' width=600> </img></div>
|
||||
|
||||
## C++代码
|
||||
|
||||
时间复杂度,空间复杂度均超过100%的用户
|
||||
|
||||
```
|
||||
class Solution {
|
||||
@ -23,10 +29,11 @@ public:
|
||||
count++;
|
||||
}
|
||||
}
|
||||
s.resize(s.size() + count * 2); // 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小
|
||||
// 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小
|
||||
s.resize(s.size() + count * 2);
|
||||
int sNewSize = s.size();
|
||||
// 从后先前将空格替换为"%20"
|
||||
for (int i = sNewSize - 1, j = sOldSize - 1; i >= 0, j >= 0; i--, j--) {
|
||||
for (int i = sNewSize - 1, j = sOldSize - 1; j < i; i--, j--) {
|
||||
if (s[j] != ' ') {
|
||||
s[i] = s[j];
|
||||
} else {
|
||||
@ -39,5 +46,6 @@ public:
|
||||
return s;
|
||||
}
|
||||
};
|
||||
|
||||
```
|
||||
> 笔者在先后在腾讯和百度从事技术研发多年,利用工作之余重刷leetcode,本文 [GitHub](https://github.com/youngyangyang04/leetcode-master ):https://github.com/youngyangyang04/leetcode-master 已经收录,欢迎star,fork,共同学习,一起进步。
|
||||
|
BIN
video/替换空格.mp4
Normal file
BIN
video/替换空格.mp4
Normal file
Binary file not shown.
Reference in New Issue
Block a user