Skip to content

Commit 8100e8c

Browse files
committed
Use codesnipet plugin to include code
1 parent 89a8b46 commit 8100e8c

5 files changed

+52
-51
lines changed

book.json

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
{
22
"gitbook": "2.x.x",
3-
"plugins": ["mathjax"],
4-
"links": {
5-
"sidebar": {
6-
"Contact us / Support": "https://www.github.com/soulmachine"
3+
"plugins": ["mathjax", "superscript", "github", "disqus", "codesnippet"],
4+
"pluginsConfig": {
5+
"github": {
6+
"url": "https://www.github.com/soulmachine/algorithm-essentials"
7+
},
8+
"disqus": {
9+
"shortName": "soulmachine"
710
}
8-
},
9-
"pluginsConfig": {}
11+
}
1012
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Remove Duplicates from Sorted Array
2+
// 时间复杂度O(n),空间复杂度O(1)
3+
class Solution {
4+
public:
5+
int removeDuplicates(vector<int>& nums) {
6+
if (nums.empty()) return 0;
7+
8+
int index = 0;
9+
for (int i = 1; i < nums.size(); i++) {
10+
if (nums[index] != nums[i])
11+
nums[++index] = nums[i];
12+
}
13+
return index + 1;
14+
}
15+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Remove Duplicates from Sorted Array
2+
// 使用STL,时间复杂度O(n),空间复杂度O(1)
3+
class Solution {
4+
public:
5+
int removeDuplicates(vector<int>& nums) {
6+
return distance(nums.begin(), unique(nums.begin(), nums.end()));
7+
}
8+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Remove Duplicates from Sorted Array
2+
// 使用STL,时间复杂度O(n),空间复杂度O(1)
3+
class Solution {
4+
public:
5+
int removeDuplicates(vector<int>& nums) {
6+
return distance(nums.begin(), removeDuplicates(nums.begin(), nums.end(), nums.begin()));
7+
}
8+
9+
template<typename InIt, typename OutIt>
10+
OutIt removeDuplicates(InIt first, InIt last, OutIt output) {
11+
while (first != last) {
12+
*output++ = *first;
13+
first = upper_bound(first, last, *first);
14+
}
15+
16+
return output;
17+
}
18+
};

cpp/linear-list/array.md

+3-45
Original file line numberDiff line numberDiff line change
@@ -20,59 +20,17 @@ Your function should return length = 2, and `A` is now `[1,2]`.
2020

2121
### 代码1
2222

23-
```cpp
24-
// LeetCode, Remove Duplicates from Sorted Array
25-
// 时间复杂度O(n),空间复杂度O(1)
26-
class Solution {
27-
public:
28-
int removeDuplicates(vector<int>& nums) {
29-
if (nums.empty()) return 0;
30-
31-
int index = 0;
32-
for (int i = 1; i < nums.size(); i++) {
33-
if (nums[index] != nums[i])
34-
nums[++index] = nums[i];
35-
}
36-
return index + 1;
37-
}
38-
};
39-
```
23+
{% codesnippet "./code/remove-duplicates-from-sorted-array-1.cpp", language="cpp" %}{% endcodesnippet %}
4024

4125

4226
### 代码2
4327

44-
```cpp
45-
// 使用STL,时间复杂度O(n),空间复杂度O(1)
46-
class Solution {
47-
public:
48-
int removeDuplicates(vector<int>& nums) {
49-
return distance(nums.begin(), unique(nums.begin(), nums.end()));
50-
}
51-
};
52-
```
28+
{% codesnippet "./code/remove-duplicates-from-sorted-array-2.cpp", language="cpp" %}{% endcodesnippet %}
5329

5430

5531
### 代码3
5632

57-
```cpp
58-
// 使用STL,时间复杂度O(n),空间复杂度O(1)
59-
class Solution {
60-
public:
61-
int removeDuplicates(vector<int>& nums) {
62-
return distance(nums.begin(), removeDuplicates(nums.begin(), nums.end(), nums.begin()));
63-
}
64-
65-
template<typename InIt, typename OutIt>
66-
OutIt removeDuplicates(InIt first, InIt last, OutIt output) {
67-
while (first != last) {
68-
*output++ = *first;
69-
first = upper_bound(first, last, *first);
70-
}
71-
72-
return output;
73-
}
74-
};
75-
```
33+
{% codesnippet "./code/remove-duplicates-from-sorted-array-3.cpp", language="cpp" %}{% endcodesnippet %}
7634

7735

7836
### 相关题目

0 commit comments

Comments
 (0)