更新课程内容

This commit is contained in:
MYP
2020-09-20 15:48:25 +08:00
parent 6230cb3a76
commit 60b8a54c87
3 changed files with 755 additions and 1353 deletions

View File

@@ -0,0 +1,755 @@
[toc]
---
# Leetcodeͬ<65><CDAC><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
## <20><>Ŀ01<30><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>9
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/palindrome-number/
<EFBFBD>ж<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>򣨴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>򣨴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󣩶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 121
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: true
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: -121
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: false
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD>, Ϊ -121 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ϊ 121- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 3</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 10
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: false
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, Ϊ 01 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```
<b><3E><><EFBFBD><EFBFBD></b>:
<EFBFBD><EFBFBD><EFBFBD>ܲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>תΪ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 76 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 98.90% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 14.9 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 85.12% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public bool IsPalindrome(int x) {
if (x < 0)
return false;
int bit = 1;
while (x / bit >= 10)
{
bit = bit * 10;
}
while (x > 0)
{
int left = x % 10;
int right = x / bit;
if (left != right)
{
return false;
}
x = (x % bit) / 10;
bit = bit / 100;
}
return true;
}
```
---
## <20><>Ŀ02<30><32>x <20><>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>69
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/sqrtx/
ʵ<EFBFBD><EFBFBD> `int sqrt(int x)` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`x`<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`x`<EFBFBD>ǷǸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD>֣<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 8
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2
˵<EFBFBD><EFBFBD>: 8 <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2.82842..., <EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD>
```
**˼·**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ٵ<EFBFBD><D9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![ţ<EFBFBD>ٵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ](https://img-blog.csdnimg.cn/2019082111485172.png)
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 48 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 100.00% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 13.7 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.40% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public int MySqrt(int x) {
if (x < 0)
throw new ArgumentOutOfRangeException();
double error = 1.0e-5;
double cur = x;
while (Math.Abs(cur*cur - x) > error)
{
cur = (cur + 1.0*x/cur)/2.0;
}
return (int)cur;
}
}
```
---
## <20><>Ŀ03<30><33><EFBFBD><EFBFBD>¥<EFBFBD><C2A5>
> - <20><><EFBFBD>ţ<EFBFBD>70
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/climbing-stairs/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¥<EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD>Ҫ n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>¥<EFBFBD><C2A5><EFBFBD><EFBFBD>
ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><> 2 <20><>̨<EFBFBD>ס<EFBFBD><D7A1><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ֲ<EFBFBD>ͬ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¥<EFBFBD><C2A5><EFBFBD>أ<EFBFBD>
<b>ע<><D7A2></b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b><3E><>
```c
<EFBFBD><EFBFBD><EFBFBD> 2
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2
<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. 1 <EFBFBD><EFBFBD> + 1 <EFBFBD><EFBFBD>
2. 2 <EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 2</b><3E><>
```c
<EFBFBD><EFBFBD><EFBFBD> 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3
<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¥<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1. 1 <EFBFBD><EFBFBD> + 1 <EFBFBD><EFBFBD> + 1 <EFBFBD><EFBFBD>
2. 1 <EFBFBD><EFBFBD> + 2 <EFBFBD><EFBFBD>
3. 2 <EFBFBD><EFBFBD> + 1 <EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 3</b><3E><>
```c
<EFBFBD><EFBFBD><EFBFBD> 44
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1134903170
```
**˼·**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>
- 1 <20>ף<EFBFBD>f(1) = 1 <20>ַ<EFBFBD><D6B7><EFBFBD>
- 2 <20>ף<EFBFBD>f(2) = 2 <20>ַ<EFBFBD><D6B7><EFBFBD>
- 3 <20>ף<EFBFBD>f(3) = 3 <20>ַ<EFBFBD><D6B7><EFBFBD>
- 4 <20>ף<EFBFBD>f(4) = 5 <20>ַ<EFBFBD><D6B7><EFBFBD>
- <20><><EFBFBD><EFBFBD>
- n <20>ף<EFBFBD>f(n) = f(n-1) + f(n-2) <20>ַ<EFBFBD><D6B7><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ쳲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 52 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 97.87% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 13.7 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.98% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public int ClimbStairs(int n) {
if (n <= 2)
return n;
int first = 1;
int second = 2;
int result = 0;
for (int i = 3; i <= n; i++)
{
result = first + second;
first = second;
second = result;
}
return result;
}
}
```
---
## <20><>Ŀ04<30><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
> - <20><><EFBFBD>ţ<EFBFBD>121
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD> i <20><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>һ֧<D2BB><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1> i <20><><EFBFBD>ļ۸<C4BC><DBB8><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ʽ<EFBFBD><EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ֧<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [7,1,5,3,6,4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD>ڵ<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 5 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 6-1 = 5 <EFBFBD><EFBFBD>
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 7-1 = 6, <EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [7,6,4,3,1]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 0
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, û<EFBFBD>н<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0<EFBFBD><EFBFBD>
```
**˼·**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD>׬<EFBFBD><D7AC><EFBFBD><EFBFBD>Ǯ<EFBFBD><C7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 132 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 97.33% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 24 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.62% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int MaxProfit(int[] prices)
{
if (prices.Length <= 1)
return 0;
int min = prices[0];
int max = 0;
for (int i = 1; i < prices.Length; i++)
{
int earn = prices[i] - min;
if (earn > max)
{
max = earn;
}
if (prices[i] < min)
{
min = prices[i];
}
}
return max;
}
}
```
---
## <20><>Ŀ05<30><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> II
> - <20><><EFBFBD>ţ<EFBFBD>122
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD> i <20><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>һ֧<D2BB><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1> i <20><><EFBFBD>ļ۸<C4BC><DBB8><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ֧<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<b>ע<><D7A2></b><3E><><EFBFBD><EFBFBD><E3B2BB>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ף<EFBFBD><D7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴι<D9B4><CEB9><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>۵<EFBFBD>֮ǰ<D6AE>Ĺ<EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [7,1,5,3,6,4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 7
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD>ڵ<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 3 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 5-1 = 4 <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 4 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 3<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 5 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 6<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 6-3 = 3 <EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [1,2,3,4,5]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD>ڵ<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 5 <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>۸<EFBFBD> = 5<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 5-1 = 4 <EFBFBD><EFBFBD>
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><EFBFBD>ٽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD>ʽ<EFBFBD><EFBFBD>ף<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٴι<EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD>֮ǰ<EFBFBD>Ĺ<EFBFBD>Ʊ<EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 3</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [7,6,4,3,1]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 0
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, û<EFBFBD>н<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 0<EFBFBD><EFBFBD>
```
**˼·**<2A><>̰<EFBFBD><CCB0><EFBFBD>
̰<EFBFBD>IJ<EFBFBD><EFBFBD>ԣ<EFBFBD>ֻҪ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>۸<EFBFBD><EFBFBD><EFBFBD>ǰһ<EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](https://img-blog.csdnimg.cn/20190914100650406.png)
![<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>](https://img-blog.csdnimg.cn/20200325110545912.png)
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 140 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 72.02% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 24.2 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.36% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int MaxProfit(int[] prices)
{
int earn = 0;
for (int i = 0; i < prices.Length-1; i++)
{
earn += Math.Max(prices[i + 1] - prices[i], 0);
}
return earn;
}
}
```
---
## <20><>Ŀ06<30><36><EFBFBD><EFBFBD>Ծ<EFBFBD><D4BE>Ϸ
> - <20><><EFBFBD>ţ<EFBFBD>55
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/jump-game/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ÿ<EFBFBD><EFBFBD>Ԫ<EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD>λ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶ȡ<EFBFBD>
<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD>
**ʾ<><CABE> 1:**
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [2,3,1,1,4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: true
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD> 0 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> λ<EFBFBD><EFBFBD> 1, Ȼ<EFBFBD><EFBFBD><EFBFBD>ٴ<EFBFBD>λ<EFBFBD><EFBFBD> 1 <EFBFBD><EFBFBD> 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD>
```
**ʾ<><CABE> 2:**
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [3,2,1,0,4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: false
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 3 <EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>λ<EFBFBD>á<EFBFBD>
```
**ʾ<><CABE> 3:**
```c
<EFBFBD><EFBFBD><EFBFBD>[0]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true
```
**˼·<EFBFBD><EFBFBD>̰<EFBFBD><EFBFBD><EFBFBD>㷨**
̰<EFBFBD>IJ<EFBFBD><EFBFBD>ԣ<EFBFBD>ÿ<EFBFBD>μ<EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true<EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
- ִ<>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>120 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 57.32% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ģ<EFBFBD>26.2 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 6.67% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public bool CanJump(int[] nums)
{
int maxlength = 0; //<2F><>¼<EFBFBD><C2BC><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6>
for (int i = 0; maxlength < nums.Length-1; i++)
{
if (i > maxlength)
{
return false;//<2F><><EFBFBD>˵<EFBFBD><CBB5>Ѳ<EFBFBD><D1B2>ܵ<EFBFBD><DCB5><EFBFBD><EFA3AC><EFBFBD><EFBFBD>false
}
maxlength = Math.Max(i + nums[i], maxlength);
}
return true;
}
}
```
---
## <20><>Ŀ07<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
> - <20><><EFBFBD>ţ<EFBFBD>15
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/3sum/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`n`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums`<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>`nums`<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>`a<><61>b<EFBFBD><62>c`<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>`a + b + c = 0`<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD><EFBFBD><EFBFBD>԰<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>
**ʾ<><CABE><EFBFBD><EFBFBD>**
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [-1, 0, 1, 2, -1, -4]<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>
[
[-1, 0, 1],
[-1, -1, 2]
]
```
**˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>**
Ϊ<EFBFBD>˱<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><EFBFBD>Ч<EFBFBD>ʡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȣ<EFBFBD><EFBFBD><EFBFBD>`nums`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>󣬹̶<EFBFBD>3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`i,l(left),r(right)`<EFBFBD><EFBFBD>`i`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`l`ָ<EFBFBD><EFBFBD>`nums[i]`֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сֵ<EFBFBD><EFBFBD>`r`ָ<EFBFBD><EFBFBD>`nums[i]`֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>ģ<EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums[i] > 0`<EFBFBD>Ͳ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums[i] + nums[l] + nums[r]`<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`l`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>`r`ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`r`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>`l`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>result<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD>еĹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD>ؾͺá<EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
- ִ<>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>348 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 99.54% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ģ<EFBFBD>35.8 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 6.63% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public IList<IList<int>> ThreeSum(int[] nums)
{
IList<IList<int>> result = new List<IList<int>>();
nums = nums.OrderBy(a => a).ToArray();
int len = nums.Length;
for (int i = 0; i < len - 2; i++)
{
if (nums[i] > 0)
break; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>0, <20><><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>Ѿ<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (i > 0 && nums[i - 1] == nums[i])
continue; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB>Ԫ<EFBFBD>ص<EFBFBD><D8B5>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
int l = i + 1;
int r = len - 1;
while (l < r)
{
int sum = nums[i] + nums[l] + nums[r];
if (sum < 0)
{
l++;
}
else if (sum > 0)
{
r--;
}
else
{
result.Add(new List<int>() {nums[i], nums[l], nums[r]});
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>еڶ<D0B5><DAB6><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
while (l < r && nums[l] == nums[l + 1])
{
l++;
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
while (l < r && nums[r - 1] == nums[r])
{
r--;
}
l++;
r--;
}
}
}
return result;
}
}
```
---
## <20><>Ŀ08<30><38><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
> - <20><><EFBFBD>ţ<EFBFBD>16
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/3sum-closest/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`n`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums`<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ֵ`target`<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD>`nums`<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵĺ<EFBFBD><EFBFBD><EFBFBD>`target`<EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ͡<EFBFBD><EFBFBD>ٶ<EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<EFBFBD>𰸡<EFBFBD>
<b>ʾ<><CABE></b> :
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [-1<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>-4], <EFBFBD><EFBFBD> target = 1.
<EFBFBD><EFBFBD> target <EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>Ϊ 2. (-1 + 2 + 1 = 2).
```
<b>˼·<CBBC><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> + <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ķ<EFBFBD><C4B7><EFBFBD></b>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 132 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 100.00% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 24 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.55% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int ThreeSumClosest(int[] nums, int target)
{
nums = nums.OrderBy(a => a).ToArray();
int result = nums[0] + nums[1] + nums[2];
for (int i = 0; i < nums.Length - 2; i++)
{
int start = i + 1, end = nums.Length - 1;
while (start < end)
{
int sum = nums[start] + nums[end] + nums[i];
if (Math.Abs(target - sum) < Math.Abs(target - result))
result = sum;
if (sum > target)
end--;
else if (sum < target)
start++;
else
return result;
}
}
return result;
}
}
```
---
## <20><>Ŀ09<30><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> II
> - <20><><EFBFBD>ţ<EFBFBD>59
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/spiral-matrix-ii/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><> n^2 <20><><EFBFBD><EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><D8A3><EFBFBD>Ԫ<EFBFBD>ذ<EFBFBD>˳ʱ<CBB3><CAB1>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ξ<EFBFBD><CEBE><EFBFBD><EFBFBD><EFBFBD>
<b>ʾ<><CABE></b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
```
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 296 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 97.67% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 25 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 11.11% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int[][] GenerateMatrix(int n)
{
int[][] matrix = new int[n][];
for (int i = 0; i < n; i++)
{
matrix[i] = new int[n];
}
int start = 0;//<2F><>ʼλ<CABC><CEBB>
int end1 = n - 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
int end2 = n - 1;//<2F><><EFBFBD>±<EFBFBD>λ<EFBFBD><CEBB>
int count = 1;
while (start < end1 && start < end2)
{
LeftToRight(start, end1, start, matrix, ref count);
TopToBottom(start + 1, end2, end1, matrix, ref count);
RightToLeft(end1 - 1, start, end2, matrix, ref count);
BottomToTop(end2 - 1, start + 1, start, matrix, ref count);
start++;
end1 = n - 1 - start;
end2 = n - 1 - start;
}
if (n%2 == 1)
{
matrix[start][start] = count;
}
return matrix;
}
private void LeftToRight(int start, int end, int rowIndex, int[][] matrix, ref int from)
{
for (int i = start; i <= end; i++)
{
matrix[rowIndex][i] = from;
from++;
}
}
private void TopToBottom(int start, int end, int colIndex, int[][] matrix, ref int from)
{
for (int i = start; i <= end; i++)
{
matrix[i][colIndex] = from;
from++;
}
}
private void RightToLeft(int start, int end, int rowIndex, int[][] matrix, ref int from)
{
for (int i = start; i >= end; i--)
{
matrix[rowIndex][i] = from;
from++;
}
}
private void BottomToTop(int start, int end, int colIndex, int[][] matrix, ref int from)
{
for (int i = start; i >= end; i--)
{
matrix[i][colIndex] = from;
from++;
}
}
}
```
## <20><>Ŀ10<31><30><EFBFBD><EFBFBD>ͬ·<CDAC><C2B7>
> - <20><><EFBFBD>ţ<EFBFBD>62
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/unique-paths/
һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> m x n <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD> <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>Ϊ<EFBFBD><CEAA>Start<72><74> <20><><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>Finish<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![<EFBFBD><EFBFBD><EFBFBD><EFBFBD>](https://img-blog.csdnimg.cn/20190912160514978.png)
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>7 x 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>ٿ<EFBFBD><D9BF>ܵ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
<b>˵<><CBB5></b><3E><>m <20><> n <20><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100<30><30>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: m = 3, n = 2
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻǿ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½ǡ<EFBFBD>
1. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3. <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> -> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: m = 7, n = 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 28
```
<b>ʾ<><CABE> 3</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: m = 23, n = 12
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 193536720
```
<b>˼·<CBBC><C2B7></b><3E><><EFBFBD>ö<EFBFBD>̬<EFBFBD><EFBFBD><E6BBAE>
<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>01<EFBFBD><EFBFBD>
![<EFBFBD><EFBFBD>01](https://img-blog.csdnimg.cn/20190912160347481.png)
<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>02<EFBFBD><EFBFBD>
![<EFBFBD><EFBFBD>02](https://img-blog.csdnimg.cn/20190912160424714.png)
<EFBFBD><EFBFBD>̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӽṹΪ<EFBFBD><EFBFBD>`d[i,j] = d[i-1,j] + d[i,j-1]`
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- 62 / 62 <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 52 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 93.18% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 13.6 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 17.65% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int UniquePaths(int m, int n)
{
int[,] memo = new int[m, n];
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (i == 0)
{
memo[i, j] = 1;
}
else if (j == 0)
{
memo[i, j] = 1;
}
else
{
memo[i, j] = memo[i - 1, j] + memo[i, j - 1];
}
}
}
return memo[m - 1, n - 1];
}
}
```

File diff suppressed because it is too large Load Diff