Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 48a7561

Browse files
Merge branch 'youngyangyang04:master' into master
2 parents f5c7f01 + 4e12b76 commit 48a7561

File tree

252 files changed

+11445
-1711
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

252 files changed

+11445
-1711
lines changed

‎.gitignore‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎README.md‎

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
👉 推荐 [Gitee同步](https://gitee.com/programmercarl/leetcode-master)
44

55
> 1. **介绍** :本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,[关注作者](#关于作者)
6-
> 2. **正式出版** :[《代码随想录》](https://programmercarl.com/other/publish.html)
7-
> 3. **PDF版本** :[「代码随想录」算法精讲 PDF 版本](https://programmercarl.com/other/algo_pdf.html)
6+
> 2. **正式出版** :[《代码随想录》](https://programmercarl.com/qita/publish.html)
7+
> 3. **PDF版本** :[「代码随想录」算法精讲 PDF 版本](https://programmercarl.com/qita/algo_pdf.html)
88
> 4. **算法公开课** :[《代码随想录》算法视频公开课](https://www.bilibili.com/video/BV1fA4y1o715)
99
> 5. **最强八股文** :[代码随想录知识星球精华PDF](https://www.programmercarl.com/other/kstar_baguwen.html)
1010
> 6. **刷题顺序** :README已经将刷题顺序排好了,按照顺序一道一道刷就可以。
@@ -14,7 +14,7 @@
1414
1515

1616
<p align="center">
17-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
17+
<a href="https://programmercarl.com/xunlian/xunlianying.html" target="_blank">
1818
<img src="./pics/训练营.png" width="800"/>
1919
</a>
2020
</p>
@@ -76,18 +76,7 @@
7676
* [C++面试&C++学习指南知识点整理](https://github.com/youngyangyang04/TechCPP)
7777
* [C++语言基础课](https://kamacoder.com/course.php?course_id=1)
7878
* [Java语言基础课](https://kamacoder.com/course.php?course_id=2)
79-
80-
* 项目
81-
* [基于跳表的轻量级KV存储引擎](https://github.com/youngyangyang04/Skiplist-CPP)
82-
* [Nosql数据库注入攻击系统](https://github.com/youngyangyang04/NoSQLAttack)
83-
84-
* 编程素养
85-
* [看了这么多代码,谈一谈代码风格!](./problems/前序/代码风格.md)
86-
* [力扣上的代码想在本地编译运行?](./problems/前序/力扣上的代码想在本地编译运行?.md)
87-
* [什么是核心代码模式,什么又是ACM模式?](./problems/前序/什么是核心代码模式,什么又是ACM模式?.md)
88-
* [刷题要不要用库函数](./problems/前序/刷力扣用不用库函数.md)
89-
* [ACM模式如何构造二叉树](./problems/前序/ACM模式如何构建二叉树.md)
90-
* [解密互联网大厂研发流程](./problems/前序/互联网大厂研发流程.md)
79+
* [23种设计模式](https://github.com/youngyangyang04/kama-DesignPattern)
9180

9281
* 工具
9382
* [一站式vim配置](https://github.com/youngyangyang04/PowerVim)
@@ -105,7 +94,6 @@
10594
* [关于时间复杂度,你不知道的都在这里!](./problems/前序/关于时间复杂度,你不知道的都在这里!.md)
10695
* [O(n)的算法居然超时了,此时的n究竟是多大?](./problems/前序/On的算法居然超时了,此时的n究竟是多大?.md)
10796
* [通过一道面试题目,讲一讲递归算法的时间复杂度!](./problems/前序/通过一道面试题目,讲一讲递归算法的时间复杂度!.md)
108-
* [本周小结!(算法性能分析系列一)](./problems/周总结/20201210复杂度分析周末总结.md)
10997
* [关于空间复杂度,可能有几个疑问?](./problems/前序/关于空间复杂度,可能有几个疑问?.md)
11098
* [递归算法的时间与空间复杂度分析!](./problems/前序/递归算法的时间与空间复杂度分析.md)
11199
* [刷了这么多题,你了解自己代码的内存消耗么?](./problems/前序/刷了这么多题,你了解自己代码的内存消耗么?.md)
@@ -506,32 +494,21 @@
506494

507495
# 贡献者
508496

509-
[点此这里](https://github.com/youngyangyang04/leetcode-master/graphs/contributors)查看LeetCode-Master的所有贡献者。感谢他们补充了LeetCode-Master的其他语言版本,让更多的读者收益于此项目
497+
[点此这里](https://github.com/youngyangyang04/leetcode-master/graphs/contributors)查看LeetCode-Master的所有贡献者。感谢他们补充了LeetCode-Master的其他语言版本,让更多的读者受益于此项目
510498

511499
# Star 趋势
512500

513501
[![Star History Chart](https://api.star-history.com/svg?repos=youngyangyang04/leetcode-master&type=Date)](https://star-history.com/#youngyangyang04/leetcode-master&Date)
514502

515503
# 关于作者
516504

517-
大家好,我是程序员Carl,哈工大师兄,《代码随想录》作者,先后在腾讯和百度从事后端技术研发。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。
505+
大家好,我是程序员Carl,哈工大师兄,《代码随想录》作者,先后在腾讯和百度从事后端技术底层技术研发。
518506

519-
加入「代码随想录」刷题小分队(微信群),可以扫下方二维码,加代码随想录客服微信。
507+
# PDF下载
520508

521-
如果是已工作,备注:姓名-城市-岗位-组队刷题。如果学生,备注:姓名-学校-年级-组队刷题。**备注没有自我介绍不通过哦**
509+
添加如下企业微信,会自动发送给大家PDF版本,顺便可以选择是否加入刷题群。
522510

511+
添加微信记得备注,如果是已工作,备注:姓名-城市-岗位。如果学生,备注:姓名-学校-年级。**备注没有自我介绍不通过哦**
523512

524513
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/第二企业刷题活码.png" data-img="1" width="200" height="200"></img></div>
525514

526-
527-
# 公众号
528-
529-
更多精彩文章持续更新,微信搜索:「代码随想录」第一时间围观,关注后回复:666,可以获得我的所有算法专题原创PDF。
530-
531-
**来看看就知道了,你会发现相见恨晚!**
532-
533-
534-
<a name="公众号"></a>
535-
<div align="center"><img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20211026122841.png" data-img="1" width="650" height="500"></img></div>
536-
537-

‎pics/网站星球宣传海报.jpg‎

-129 KB
Loading[フレーム]

‎problems/0001.两数之和.md‎

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<p align="center">
2-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
2+
<a href="https://www.programmercarl.com/xunlian/xunlianying.html" target="_blank">
33
<img src="../pics/训练营.png" width="1000"/>
44
</a>
5-
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
5+
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
66

77

88
# 1. 两数之和
@@ -133,6 +133,7 @@ public:
133133
### Java:
134134
135135
```java
136+
//使用哈希表
136137
public int[] twoSum(int[] nums, int target) {
137138
int[] res = new int[2];
138139
if(nums == null || nums.length == 0){
@@ -151,6 +152,43 @@ public int[] twoSum(int[] nums, int target) {
151152
return res;
152153
}
153154
```
155+
```java
156+
//使用双指针
157+
public int[] twoSum(int[] nums, int target) {
158+
int m=0,n=0,k,board=0;
159+
int[] res=new int[2];
160+
int[] tmp1=new int[nums.length];
161+
//备份原本下标的nums数组
162+
System.arraycopy(nums,0,tmp1,0,nums.length);
163+
//将nums排序
164+
Arrays.sort(nums);
165+
//双指针
166+
for(int i=0,j=nums.length-1;i<j;){
167+
if(nums[i]+nums[j]<target)
168+
i++;
169+
else if(nums[i]+nums[j]>target)
170+
j--;
171+
else if(nums[i]+nums[j]==target){
172+
m=i;
173+
n=j;
174+
break;
175+
}
176+
}
177+
//找到nums[m]在tmp1数组中的下标
178+
for(k=0;k<nums.length;k++){
179+
if(tmp1[k]==nums[m]){
180+
res[0]=k;
181+
break;
182+
}
183+
}
184+
//找到nums[n]在tmp1数组中的下标
185+
for(int i=0;i<nums.length;i++){
186+
if(tmp1[i]==nums[n]&&i!=k)
187+
res[1]=i;
188+
}
189+
return res;
190+
}
191+
```
154192

155193
### Python:
156194
(版本一) 使用字典
@@ -499,8 +537,8 @@ int* twoSum(int* nums, int numsSize, int target, int* returnSize){
499537
return NULL;
500538
}
501539
```
540+
502541
<p align="center">
503542
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
504543
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
505544
</a>
506-

‎problems/0005.最长回文子串.md‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<p align="center">
2-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
2+
<a href="https://www.programmercarl.com/xunlian/xunlianying.html" target="_blank">
33
<img src="../pics/训练营.png" width="1000"/>
44
</a>
5-
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
5+
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
66

77

88

@@ -618,7 +618,7 @@ char * longestPalindrome(char * s){
618618
### C#:
619619

620620
動態規則:
621-
```c#
621+
```csharp
622622
public class Solution {
623623

624624
public string LongestPalindrome(string s) {
@@ -648,7 +648,7 @@ public class Solution {
648648
```
649649

650650
雙指針:
651-
```C#
651+
```csharp
652652
public class Solution {
653653
int maxlenth = 0;
654654
int left = 0;
@@ -677,8 +677,8 @@ public class Solution {
677677
}
678678
```
679679

680+
680681
<p align="center">
681682
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
682683
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
683684
</a>
684-

‎problems/0015.三数之和.md‎

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
<p align="center">
2-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
2+
<a href="https://www.programmercarl.com/xunlian/xunlianying.html" target="_blank">
33
<img src="../pics/训练营.png" width="1000"/>
44
</a>
5-
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
5+
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
66

77

88

9-
> 用哈希表解决了[两数之和](https://programmercarl.com/0001.两数之和.html),那么三数之和呢?
10-
119
# 第15题. 三数之和
1210

1311
[力扣题目链接](https://leetcode.cn/problems/3sum/)
@@ -256,7 +254,7 @@ while (right > left) {
256254
## 其他语言版本
257255

258256
### Java:
259-
257+
(版本一) 双指针
260258
```Java
261259
class Solution {
262260
public List<List<Integer>> threeSum(int[] nums) {
@@ -297,7 +295,43 @@ class Solution {
297295
}
298296
}
299297
```
298+
(版本二) 使用哈希集合
299+
```Java
300+
class Solution {
301+
public List<List<Integer>> threeSum(int[] nums) {
302+
List<List<Integer>> result = new ArrayList<>();
303+
Arrays.sort(nums);
304+
305+
for (int i = 0; i < nums.length; i++) {
306+
// 如果第一个元素大于零,不可能凑成三元组
307+
if (nums[i] > 0) {
308+
return result;
309+
}
310+
// 三元组元素a去重
311+
if (i > 0 && nums[i] == nums[i - 1]) {
312+
continue;
313+
}
314+
315+
HashSet<Integer> set = new HashSet<>();
316+
for (int j = i + 1; j < nums.length; j++) {
317+
// 三元组元素b去重
318+
if (j > i + 2 && nums[j] == nums[j - 1] && nums[j - 1] == nums[j - 2]) {
319+
continue;
320+
}
300321

322+
int c = -nums[i] - nums[j];
323+
if (set.contains(c)) {
324+
result.add(Arrays.asList(nums[i], nums[j], c));
325+
set.remove(c); // 三元组元素c去重
326+
} else {
327+
set.add(nums[j]);
328+
}
329+
}
330+
}
331+
return result;
332+
}
333+
}
334+
```
301335
### Python:
302336
(版本一) 双指针
303337

@@ -902,8 +936,8 @@ object Solution {
902936
}
903937
}
904938
```
939+
905940
<p align="center">
906941
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
907942
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
908943
</a>
909-

‎problems/0017.电话号码的字母组合.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<p align="center">
2-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
2+
<a href="https://www.programmercarl.com/xunlian/xunlianying.html" target="_blank">
33
<img src="../pics/训练营.png" width="1000"/>
44
</a>
5-
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
5+
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
66

77

88
# 17.电话号码的字母组合
@@ -260,7 +260,7 @@ class Solution {
260260

261261
}
262262

263-
//每次迭代获取一个字符串,所以会设计大量的字符串拼接,所以这里选择更为高效的 StringBuilder
263+
//每次迭代获取一个字符串,所以会涉及大量的字符串拼接,所以这里选择更为高效的 StringBuilder
264264
StringBuilder temp = new StringBuilder();
265265

266266
//比如digits如果为"23",num 为0,则str表示2对应的 abc
@@ -274,7 +274,7 @@ class Solution {
274274
String str = numString[digits.charAt(num) - '0'];
275275
for (int i = 0; i < str.length(); i++) {
276276
temp.append(str.charAt(i));
277-
//c
277+
//递归,处理下一层
278278
backTracking(digits, numString, num + 1);
279279
//剔除末尾的继续尝试
280280
temp.deleteCharAt(temp.length() - 1);
@@ -733,7 +733,7 @@ def backtracking(result, letter_map, digits, path, index)
733733
end
734734
```
735735
### C#
736-
```C#
736+
```csharp
737737
public class Solution
738738
{
739739
public IList<string> res = new List<string>();
@@ -765,8 +765,8 @@ public class Solution
765765
}
766766
```
767767

768+
768769
<p align="center">
769770
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
770771
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
771772
</a>
772-

‎problems/0018.四数之和.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<p align="center">
2-
<a href="https://programmercarl.com/other/xunlianying.html" target="_blank">
2+
<a href="https://www.programmercarl.com/xunlian/xunlianying.html" target="_blank">
33
<img src="../pics/训练营.png" width="1000"/>
44
</a>
5-
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
5+
<p align="center"><strong><a href="./qita/join.md">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们受益!</strong></p>
66

77

88
> 一样的道理,能解决四数之和
@@ -697,8 +697,8 @@ def four_sum(nums, target)
697697
return result
698698
end
699699
```
700+
700701
<p align="center">
701702
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
702703
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
703704
</a>
704-

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /