Skip to content

Commit a16c030

Browse files
author
zhenzi
committed
Merge branch 'main' into swift
# Conflicts: # animation-simulation/数组篇/leetcode219数组中重复元素2.md # animation-simulation/数组篇/leetcode59螺旋矩阵2.md # animation-simulation/数组篇/leetcode66加一.md # animation-simulation/数组篇/leetcode75颜色分类.md
2 parents c14c229 + 81dde48 commit a16c030

22 files changed

+1403
-475
lines changed

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,19 @@
134134

135135
### 🍅链表篇
136136

137-
- [【动画模拟】剑指 offer 2 倒数第 k 个节点](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E5%89%91%E6%8C%87offer2%E5%80%92%E6%95%B0%E7%AC%ACk%E4%B8%AA%E8%8A%82%E7%82%B9.md)
137+
- [【动画模拟】剑指 offer 22 倒数第 k 个节点](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E5%89%91%E6%8C%87offer22%E5%80%92%E6%95%B0%E7%AC%ACk%E4%B8%AA%E8%8A%82%E7%82%B9.md)
138138
- [【动画模拟】面试题 02.03. 链表中间节点](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E9%9D%A2%E8%AF%95%E9%A2%98%2002.03.%20%E9%93%BE%E8%A1%A8%E4%B8%AD%E9%97%B4%E8%8A%82%E7%82%B9.md)
139-
- [【动画模拟】剑指 offer 52 两个链表的第一个公共节点](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E5%89%91%E6%8C%87Offer52%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%AC%E5%85%B1%E8%8A%82%E7%82%B9.md)
139+
- [【动画模拟】剑指 offer 52 两个链表的第一个公共节点 & leetcode 160 相交链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E5%89%91%E6%8C%87Offer52%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%AC%E5%85%B1%E8%8A%82%E7%82%B9.md)
140140
- [【动画模拟】leetcode 234 回文链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/234.%20%E5%9B%9E%E6%96%87%E9%93%BE%E8%A1%A8.md)
141141
- [【动画模拟】leetcode 206 反转链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode206%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A8.md)
142-
- [【动画模拟】leetcode92反转链表2](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode92%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A82.md)
142+
- [【动画模拟】leetcode 92 反转链表2](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode92%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A82.md)
143+
- [【动画模拟】leetcode 141 环形链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode141%E7%8E%AF%E5%BD%A2%E9%93%BE%E8%A1%A8.md)
143144
- [【动画模拟】leetcode 142 环形链表2](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode142%E7%8E%AF%E5%BD%A2%E9%93%BE%E8%A1%A82.md)
144145
- [【动画模拟】leetcode 86 分隔链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode86%E5%88%86%E9%9A%94%E9%93%BE%E8%A1%A8.md)
146+
- [【动画模拟】leetcode 328 奇偶链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode328%E5%A5%87%E5%81%B6%E9%93%BE%E8%A1%A8.md)
145147
- [【动画模拟】剑指 offer 25 合并两个排序链表](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E5%89%91%E6%8C%87Offer25%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%8E%92%E5%BA%8F%E7%9A%84%E9%93%BE%E8%A1%A8.md)
146148
- [【动画模拟】leetcode 82 删除排序链表的重复元素2](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode82%E5%88%A0%E9%99%A4%E6%8E%92%E5%BA%8F%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%9A%84%E9%87%8D%E5%A4%8D%E5%85%83%E7%B4%A0II.md)
149+
- [【动画模拟】leetcode 147 对链表进行插入排序](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/leetcode147%E5%AF%B9%E9%93%BE%E8%A1%A8%E8%BF%9B%E8%A1%8C%E6%8F%92%E5%85%A5%E6%8E%92%E5%BA%8F.md)
147150
- [【动画模拟】面试题 02.05 链表求和](https://github.com/chefyuan/algorithm-base/blob/main/animation-simulation/%E9%93%BE%E8%A1%A8%E7%AF%87/%E9%9D%A2%E8%AF%95%E9%A2%98%2002.05.%20%E9%93%BE%E8%A1%A8%E6%B1%82%E5%92%8C.md)
148151

149152
### 🚁双指针
@@ -214,7 +217,7 @@
214217

215218
### 🌋并查集
216219

217-
220+
- 敬请期待。。。
218221

219222
------
220223

@@ -270,4 +273,3 @@
270273

271274
<div align="center"> <img src="https://cdn.jsdelivr.net/gh/tan45du/photobed@master/赞赏码.2mrhxsmxexa0.png" width = "200px" hight = "200px"/> </div>
272275

273-
###### ####

animation-simulation/数组篇/leetcode219数组中重复元素2.md

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,22 @@ class Solution:
7878
return False
7979
```
8080

81+
C++ Code:
82+
83+
```cpp
84+
class Solution {
85+
public:
86+
bool containsNearbyDuplicate(vector<int>& nums, int k) {
87+
unordered_map <int, int> m;
88+
for(int i = 0; i < nums.size(); ++i){
89+
if(m.count(nums[i]) && i - m[nums[i]] <= k) return true;
90+
m[nums[i]] = i;
91+
}
92+
return false;
93+
}
94+
};
95+
```
96+
8197
Swift Code
8298
8399
```swift
@@ -165,7 +181,24 @@ class Solution:
165181
if len(s) > k:
166182
s.remove(nums[i - k])
167183
return False
168-
```
184+
```
185+
186+
C++ Code:
187+
188+
```cpp
189+
class Solution {
190+
public:
191+
bool containsNearbyDuplicate(vector<int>& nums, int k) {
192+
multiset <int> S;
193+
for(int i = 0; i < nums.size(); ++i){
194+
if(S.count(nums[i])) return true;
195+
S.insert(nums[i]);
196+
if(S.size() > k) S.erase(nums[i - k]);
197+
}
198+
return false;
199+
}
200+
};
201+
```
169202
170203
Swift Code
171204
@@ -190,4 +223,4 @@ class Solution {
190223
return false
191224
}
192225
}
193-
```
226+
```

animation-simulation/数组篇/leetcode54螺旋矩阵.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,42 @@ class Solution {
8585

8686
```
8787

88+
C++ Code:
89+
90+
```cpp
91+
class Solution {
92+
public:
93+
vector<int> spiralOrder(vector<vector<int>>& matrix) {
94+
vector <int> arr;
95+
int left = 0, right = matrix[0].size()-1;
96+
int top = 0, down = matrix.size()-1;
97+
while (true) {
98+
for (int i = left; i <= right; ++i) {
99+
arr.emplace_back(matrix[top][i]);
100+
}
101+
top++;
102+
if (top > down) break;
103+
for (int i = top; i <= down; ++i) {
104+
arr.emplace_back(matrix[i][right]);
105+
}
106+
right--;
107+
if (left > right) break;
108+
for (int i = right; i >= left; --i) {
109+
arr.emplace_back(matrix[down][i]);
110+
}
111+
down--;
112+
if (top > down) break;
113+
for (int i = down; i >= top; --i) {
114+
arr.emplace_back(matrix[i][left]);
115+
}
116+
left++;
117+
if (left > right) break;
118+
}
119+
return arr;
120+
}
121+
};
122+
```
123+
88124
Python3 Code:
89125
90126
```python

animation-simulation/数组篇/leetcode59螺旋矩阵2.md

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,42 @@ class Solution:
140140
return arr
141141
```
142142

143+
C++ Code:
144+
145+
```cpp
146+
class Solution {
147+
public:
148+
vector<int> spiralOrder(vector<vector<int>>& matrix) {
149+
vector <int> arr;
150+
int left = 0, right = matrix[0].size()-1;
151+
int top = 0, down = matrix.size()-1;
152+
while (true) {
153+
for (int i = left; i <= right; ++i) {
154+
arr.emplace_back(matrix[top][i]);
155+
}
156+
top++;
157+
if (top > down) break;
158+
for (int i = top; i <= down; ++i) {
159+
arr.emplace_back(matrix[i][right]);
160+
}
161+
right--;
162+
if (left > right) break;
163+
for (int i = right; i >= left; --i) {
164+
arr.emplace_back(matrix[down][i]);
165+
}
166+
down--;
167+
if (top > down) break;
168+
for (int i = down; i >= top; --i) {
169+
arr.emplace_back(matrix[i][left]);
170+
}
171+
left++;
172+
if (left > right) break;
173+
}
174+
return arr;
175+
}
176+
};
177+
```
178+
143179
Swift Code:
144180
145181
```swift
@@ -263,6 +299,42 @@ class Solution:
263299
return arr.tolist()
264300
```
265301

302+
C++ Code:
303+
304+
```cpp
305+
class Solution {
306+
public:
307+
vector<vector<int>> generateMatrix(int n) {
308+
vector <vector <int>> arr(n, vector <int>(n));
309+
int left = 0, right = n-1, top = 0, buttom = n - 1, num = 1, numsize = n * n;
310+
while (true) {
311+
for (int i = left; i <= right; ++i) {
312+
arr[top][i] = num++;
313+
}
314+
top++;
315+
if (num > numsize) break;
316+
for (int i = top; i <= buttom; ++i) {
317+
arr[i][right] = num++;
318+
}
319+
right--;
320+
if (num > numsize) break;
321+
for (int i = right; i >= left; --i) {
322+
arr[buttom][i] = num++;
323+
}
324+
buttom--;
325+
if (num > numsize) break;
326+
for (int i = buttom; i >= top; --i) {
327+
arr[i][left] = num++;
328+
}
329+
left++;
330+
if (num > numsize) break;
331+
332+
}
333+
return arr;
334+
}
335+
};
336+
```
337+
266338
Swift Code:
267339
268340
```swift
@@ -304,4 +376,3 @@ class Solution {
304376
}
305377
}
306378
```
307-

animation-simulation/数组篇/leetcode66加一.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
> 感谢支持,该仓库会一直维护,希望对各位有一丢丢帮助。
44
>
55
> 另外希望手机阅读的同学可以来我的 <u>[**公众号:袁厨的算法小屋**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u> 两个平台同步,想要和题友一起刷题,互相监督的同学,可以在我的小屋点击<u>[**刷题小队**](https://raw.githubusercontent.com/tan45du/test/master/微信图片_20210320152235.2pthdebvh1c0.png)</u>进入。
6-
>
76
87
#### [66. 加一](https://leetcode-cn.com/problems/plus-one/)
98

@@ -86,6 +85,24 @@ class Solution:
8685
return arr
8786
```
8887

88+
C++ Code:
89+
90+
```cpp
91+
class Solution {
92+
public:
93+
vector<int> plusOne(vector<int>& digits) {
94+
for(int i = digits.size() - 1; i >= 0; --i){
95+
digits[i] = (digits[i] + 1)%10;
96+
if(digits[i]) return digits;
97+
}
98+
for(int & x: digits) x = 0;
99+
digits.emplace_back(1);
100+
reverse(digits.begin(), digits.end());
101+
return digits;
102+
}
103+
};
104+
```
105+
89106
Swift Code:
90107
91108
```swift
@@ -105,3 +122,4 @@ class Solution {
105122
}
106123
}
107124
```
125+

animation-simulation/数组篇/leetcode75颜色分类.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,27 @@ class Solution:
9696
nums[j] = temp
9797
```
9898

99+
C++ Code:
100+
101+
```cpp
102+
class Solution {
103+
public:
104+
void sortColors(vector<int>& nums) {
105+
int len = nums.size(), left = 0;
106+
int i = left, right = len-1;
107+
while (i <= right) {
108+
if (nums[i] == 2) {
109+
swap(nums[i],nums[right--]);
110+
} else if (nums[i] == 0) {
111+
swap(nums[i++],nums[left++]);
112+
} else {
113+
i++;
114+
}
115+
}
116+
}
117+
};
118+
```
119+
99120
Swift Code:
100121
101122
```swift
@@ -208,6 +229,29 @@ class Solution:
208229
nums[j] = temp
209230
```
210231

232+
C++ Code:
233+
234+
```cpp
235+
class Solution {
236+
public:
237+
void sortColors(vector<int>& nums) {
238+
int left = 0, len = nums.size();
239+
int right = len - 1;
240+
for (int i = 0; i <= right; ++i) {
241+
if (nums[i] == 0) {
242+
swap(nums[i],nums[left++]);
243+
}
244+
if (nums[i] == 2) {
245+
swap(nums[i],nums[right--]);
246+
if (nums[i] != 1) {
247+
i--;
248+
}
249+
}
250+
}
251+
}
252+
};
253+
```
254+
211255
Swift Code:
212256
213257
```swift

0 commit comments

Comments
 (0)