课程内容更新

This commit is contained in:
LSGOMYP
2020-09-14 16:36:04 +08:00
parent a5cb113792
commit befb6879d6
5 changed files with 791 additions and 0 deletions

View File

@@ -0,0 +1,791 @@
# Leetcodeͬ<65><CDAC><EFBFBD><EFBFBD>ϰ<EFBFBD><CFB0>һ<EFBFBD><D2BB>
## <20><>Ŀ01<30><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><D6AE>
> - <20><><EFBFBD>ţ<EFBFBD>1
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/two-sum/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `nums` <20><>һ<EFBFBD><D2BB>Ŀ<EFBFBD><C4BF>ֵ `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> <b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±ꡣ
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧһ<EFBFBD><EFBFBD><EFBFBD>𰸡<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><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> nums = [2, 7, 11, 15], target = 9
<EFBFBD><EFBFBD>Ϊ nums[0] + nums[1] = 2 + 7 = 9<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD> [0, 1]
```
**ʾ<><CABE>2<EFBFBD><32>**
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [230, 863, 916, 585, 981, 404, 316, 785, 88, 12, 70, 435, 384, 778, 887, 755, 740, 337, 86, 92, 325, 422, 815, 650, 920, 125, 277, 336, 221, 847, 168, 23, 677, 61, 400, 136, 874, 363, 394, 199, 863, 997, 794, 587, 124, 321, 212, 957, 764, 173, 314, 422, 927, 783, 930, 282, 306, 506, 44, 926, 691, 568, 68, 730, 933, 737, 531, 180, 414, 751, 28, 546, 60, 371, 493, 370, 527, 387, 43, 541, 13, 457, 328, 227, 652, 365, 430, 803, 59, 858, 538, 427, 583, 368, 375, 173, 809, 896, 370, 789], target = 542
<EFBFBD><EFBFBD>Ϊ nums[28] + nums[45] = 221 + 321 = 542<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD> [28, 45]
```
**<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>432 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 65.82% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ģ<EFBFBD>30.8 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 8.67% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int[] TwoSum(int[] nums, int target)
{
int[] result = new int[2];
for (int i = 0; i < nums.Length - 1; i++)
{
int find = target - nums[i];
for (int j = i + 1; j < nums.Length; j++)
{
if (find == nums[j])
{
result[0] = i;
result[1] = j;
return result;
}
}
}
return result;
}
}
```
---
## <20><>Ŀ02<30><32>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>ظ<EFBFBD><D8B8><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>26
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA> **ԭ<><D4AD>** ɾ<><C9BE><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD>ֵ<EFBFBD>Ԫ<EFBFBD>أ<EFBFBD>ʹ<EFBFBD><CAB9>ÿ<EFBFBD><C3BF>Ԫ<EFBFBD><D4AA>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><C2B3>ȡ<EFBFBD>
<EFBFBD><EFBFBD>Ҫʹ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **ԭ<><D4AD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>** <20><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> O(1) <20><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [1,1,2],
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µij<EFBFBD><EFBFBD><EFBFBD> 2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ر<EFBFBD><EFBFBD>޸<EFBFBD>Ϊ 1, 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>
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [0,0,1,1,1,2,2,3,3,4],
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µij<EFBFBD><EFBFBD><EFBFBD> 5, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums <EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ر<EFBFBD><EFBFBD>޸<EFBFBD>Ϊ 0, 1, 2, 3, 4<EFBFBD><EFBFBD>
<EFBFBD><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>˵<><CBB5></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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>**<2A><><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ݵģ<DDB5><C4A3><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿɼ<C7BF><C9BC>ġ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
```c
// nums <20><><EFBFBD>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD>á<EFBFBD><C3A1><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ݵġ<DDB5>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>κο<CEBA><CEBF><EFBFBD>
int len = removeDuplicates(nums);
// <20>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿɼ<C7BF><C9BC>ġ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صij<D8B5><C4B3><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>иó<D0B8><C3B3>ȷ<EFBFBD>Χ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ء<EFBFBD>
for (int i = 0; i < len; i++) {
print(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><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`j`<EFBFBD><EFBFBD>`i`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums[j] == nums[i]`ʱ<EFBFBD><EFBFBD>`j++`<EFBFBD>Ϳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`i++`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums[i] = nums[j]`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>е<EFBFBD>ĩβ<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>ʱ<EFBFBD><EFBFBD>Ӷ<EFBFBD>Ϊ`O(n)`<EFBFBD><EFBFBD>
- ִ<>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>300 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 64.43% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ģ<EFBFBD>33.5 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.48% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int RemoveDuplicates(int[] nums)
{
if (nums.Length < 2)
return nums.Length;
int i = 0;
for (int j = 1; j < nums.Length; j++)
{
if (nums[j] != nums[i])
{
i++;
nums[i] = nums[j];
}
}
return i + 1;
}
}
```
---
## <20><>Ŀ03<30><33><EFBFBD>Ƴ<EFBFBD>Ԫ<EFBFBD><D4AA>
> - <20><><EFBFBD>ţ<EFBFBD>27
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/remove-element/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums`<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ֵ`val`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ**ԭ<><D4AD>**<2A>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>`val`<EFBFBD><EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD><EFBFBD>ȡ<EFBFBD>
<EFBFBD><EFBFBD>Ҫʹ<EFBFBD>ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**ԭ<><D4AD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**<2A><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> O(1) <20><><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>
Ԫ<EFBFBD>ص<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ըı<EFBFBD><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> nums = [3,2,2,3], val = 3,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µij<EFBFBD><EFBFBD><EFBFBD> 2, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums <EFBFBD>е<EFBFBD>ǰ<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><EFBFBD>Ԫ<EFBFBD>ء<EFBFBD>
```
**ʾ<><CABE> 2:**
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums = [0,1,2,2,3,0,4,2], val = 2,
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µij<EFBFBD><EFBFBD><EFBFBD> 5, <EFBFBD><EFBFBD><EFBFBD><EFBFBD> nums <EFBFBD>е<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ϊ 0, 1, 3, 0, 4<EFBFBD><EFBFBD>
ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ؿ<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><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>[] value = 0
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
```
**ʾ<><CABE> 4:**
```c
<EFBFBD><EFBFBD><EFBFBD>[1] value = 1
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
```
**ʾ<><CABE> 5:**
```c
<EFBFBD><EFBFBD><EFBFBD>[4,5] value = 5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
```
**˵<EFBFBD><EFBFBD>:**
Ϊʲô<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><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>**<2A><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ݵģ<DDB5><C4A3><EFBFBD><EFBFBD><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿɼ<C7BF><C9BC>ġ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
```c
// nums <20><><EFBFBD>ԡ<EFBFBD><D4A1><EFBFBD><EFBFBD>á<EFBFBD><C3A1><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ݵġ<DDB5>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>κο<CEBA><CEBF><EFBFBD>
int len = removeElement(nums, val);
// <20>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿɼ<C7BF><C9BC>ġ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>صij<D8B5><C4B3><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>иó<D0B8><C3B3>ȷ<EFBFBD>Χ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ء<EFBFBD>
for (int i = 0; i < len; i++) {
print(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>`i`<EFBFBD><EFBFBD>`j`<EFBFBD><EFBFBD>`i`Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><EFBFBD><EFBFBD>`j`Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums[j]!=val`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`num[j]`<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`num[i]`<EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`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>ģ<EFBFBD>ʱ<EFBFBD><EFBFBD>Ӷ<EFBFBD>Ϊ `O(n)`<EFBFBD><EFBFBD>
- ִ<>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>272 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 94.41% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ģ<EFBFBD>29.9 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.21% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int RemoveElement(int[] nums, int val)
{
int i = 0;
for (int j = 0; j < nums.Length; j++)
{
if (nums[j] != val)
{
nums[i] = nums[j];
i++;
}
}
return i;
}
}
```
---
## <20><>Ŀ04<30><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>53
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/maximum-subarray/
<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><EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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>: [-2,1,-3,4,-1,2,1,-5,4],
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 6
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [4,-1,2,1] <EFBFBD>ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 6<EFBFBD><EFBFBD>
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [-2,1],
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 1
```
<b><3E><><EFBFBD><EFBFBD></b>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ʵ<EFBFBD>ָ<EFBFBD><EFBFBD>Ӷ<EFBFBD>Ϊ`O(n)`<EFBFBD>Ľⷨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ø<EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD>η<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 596 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 14.18% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 24.5 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.88% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public int MaxSubArray(int[] nums) {
int len = nums.Length;
if (len == 0)
return 0;
if (len == 1)
return nums[0];
int max = int.MinValue;
for (int i = 0; i < len; i++)
{
int sum = nums[i];
if (sum > max)
{
max = sum;
}
for (int j = i + 1; j < len; j++)
{
sum += nums[j];
if (sum > max)
{
max = sum;
}
}
}
return max;
}
}
```
---
## <20><>Ŀ05<30><35>ʢ<EFBFBD><CAA2><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>11
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/container-with-most-water/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`n`<EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`a1<61><31>a2<61><32>...<2E><>an`<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>`(i, ai)`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڻ<EFBFBD>`n`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><EFBFBD>`i` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>ֱ<EFBFBD>Ϊ`(i, ai)`<EFBFBD><EFBFBD>`(i, 0)`<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><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>
<b>˵<><CBB5></b><3E><><EFBFBD><EFBFBD><E3B2BB><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`n`<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ 2<><32>
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hbGl5dW4tbGMtdXBsb2FkLm9zcy1jbi1oYW5nemhvdS5hbGl5dW5jcy5jb20vYWxpeXVuLWxjLXVwbG9hZC91cGxvYWRzLzIwMTgvMDcvMjUvcXVlc3Rpb25fMTEuanBn?x-oss-process=image/format,png)
ͼ<EFBFBD>д<EFBFBD>ֱ<EFBFBD>ߴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [1,8,6,2,5,4,8,3,7]<5D><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>ʾΪ<CABE><CEAA>ɫ<EFBFBD><C9AB><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵΪ 49<34><39>
<b>ʾ<><CABE></b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [1,8,6,2,5,4,8,3,7]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 49
```
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9waWMubGVldGNvZGUtY24uY29tLzg4NGQ1YmNlOTU1ZThiYzA1MGY2NTUxNTQwNGEwNDI2NGYyYzFmZjgyNzYyMWFiZDcyYjgxNzA5ZmUzNzMyM2YtJUU5JTgxJThEJUU1JThFJTg2JUU3JTlBJTg0JUU2JTgzJTg1JUU1JTg2JUI1LmpwZw?x-oss-process=image/format,png)
<EFBFBD><EFBFBD>0-7<>ߵ<EFBFBD>1-7<><37>һ<EFBFBD><D2BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊʲô<CAB2><C3B4><EFBFBD><EFBFBD>0-6<><36>һ<EFBFBD><D2BB>֧<EFBFBD><D6A7>
```c
<EFBFBD><EFBFBD>h(i)<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>i<EFBFBD><EFBFBD><EFBFBD>߶εĸ߶ȣ<EFBFBD>S(ij)<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>i<EFBFBD><EFBFBD><EFBFBD>߶κ͵<EFBFBD>j<EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>Ȧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>֪ h(0) < h(7)<EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD>S(07) = h(0) * 7<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>S(06) = min(h(0), h(6)) * 6<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>h(0) <= h(6)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>S(06) = h(0) * 6<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>h(0) > h(6)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>S(06) = h(6) * 6<EFBFBD><EFBFBD>S(06) < h(0) * 6<EFBFBD><EFBFBD>
<EFBFBD>ɴ˿<EFBFBD>֪<EFBFBD><EFBFBD>S(06)<EFBFBD><EFBFBD>ȻС<EFBFBD><EFBFBD>S(07)<EFBFBD><EFBFBD>
```
<EFBFBD><EFBFBD>ÿһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׿<EFBFBD><EFBFBD><EFBFBD>֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- 50 / 50 <20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 144 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 99.64% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 26.6 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.45% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int MaxArea(int[] height)
{
int i = 0, j = height.Length - 1;
int max = int.MinValue;
while (i < j)
{
int temp = (j - i) * Math.Min(height[i], height[j]);
if (temp > max)
{
max = temp;
}
if (height[i] < height[j])
{
i++;
}
else
{
j--;
}
}
return max;
}
}
```
---
## <20><>Ŀ06<30><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>33
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/search-in-rotated-sorted-array/
<EFBFBD><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>
( <20><><EFBFBD><EFBFBD><E7A3AC><EFBFBD><EFBFBD> [0,1,2,4,5,6,7] <20><><EFBFBD>ܱ<EFBFBD>Ϊ [4,5,6,7,0,1,2] )<29><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><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 <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>`O(log n)`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: nums = [4,5,6,7,0,1,2], target = 0
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: nums = [4,5,6,7,0,1,2], target = 3
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: -1
```
<b>ʾ<><CABE> 3</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: nums = [5,1,3], target = 5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 0
```
<b>ʾ<><CABE> 4</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: nums = [4,5,6,7,8,1,2,3], target = 8
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4
```
<b>ʾ<><CABE> 5</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: nums = [3,1], target = 1
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 1
```
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 128 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 97.17% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 23.8 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 12.00% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int Search(int[] nums, int target)
{
int i = 0, j = nums.Length - 1;
while (i <= j)
{
int mid = (i + j) / 2;
if (nums[mid] == target)
return mid;
if (nums[mid] >= nums[i])
{
//<2F><><EFBFBD>벿<EFBFBD><EBB2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (target > nums[mid])
{
i = mid + 1;
}
else
{
if (target == nums[i])
return i;
if (target > nums[i])
j = mid - 1;
else
i = mid + 1;
}
}
else
{
if (target < nums[mid])
{
j = mid - 1;
}
else
{
if (target == nums[j])
return j;
if (target < nums[j])
i = mid + 1;
else
j = mid - 1;
}
}
}
return -1;
}
}
```
---
## <20><>Ŀ07<30><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еĵ<D0B5>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
> - <20><><EFBFBD>ţ<EFBFBD>215
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/kth-largest-element-in-an-array/
<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD> `k` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>ء<EFBFBD><D8A1><EFBFBD>ע<EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD>Ҫ<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD> `k` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD> `k` <20><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>Ԫ<EFBFBD>ء<EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [3,2,1,5,6,4] <EFBFBD><EFBFBD> k = 2
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 5
```
<b>ʾ<><CABE> 2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [3,2,3,1,2,4,5,5,6] <EFBFBD><EFBFBD> k = 4
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 4
```
<b>˵<><CBB5></b>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> `k` <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD> `1 <20><> k <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>`<EFBFBD><EFBFBD>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 152 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 76.47% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 24.6 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 FindKthLargest(int[] nums, int k)
{
nums = nums.OrderBy(a => a).ToArray();
return nums[nums.Length - k];
}
}
```
---
## <20><>Ŀ08<30><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij˻<C4B3>
> - <20><><EFBFBD>ţ<EFBFBD>238
> - <20>Ѷȣ<D1B6><C8A3>е<EFBFBD>
> - https://leetcode-cn.com/problems/product-of-array-except-self/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ`n`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`n > 1`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`output`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`output[i]`<EFBFBD><EFBFBD><EFBFBD><EFBFBD> `nums`<EFBFBD>г<EFBFBD>`nums[i]`֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD>صij˻<EFBFBD><EFBFBD><EFBFBD>
<b>ʾ<><CABE></b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [1,2,3,4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [24,12,8,6]
```
<b>˵<><CBB5></b>: <20>벻Ҫʹ<D2AA>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`O(n)` ʱ<><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><C9B4>
<b><3E><><EFBFBD><EFBFBD></b><3E><>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>𣿣<EFBFBD> <20><><EFBFBD>ڶԿռ<D5BC>Ӷȷ<D3B6><C8B7><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B2BB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ռ<D5BC><E4A1A3>
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD> = <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ߵij˻<C4B3> * <20><>ǰ<EFBFBD><C7B0><EFBFBD>ұߵij˻<C4B3>
```c
[1, 2, 3, 4]
<EFBFBD><EFBFBD><EFBFBD>ߵij˻<EFBFBD> [1, 1, 2, 6]
<EFBFBD>ұߵij˻<EFBFBD> [24,12,4, 1]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = <EFBFBD><EFBFBD>*<EFBFBD><EFBFBD> [24,12,8, 6]
```
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 304 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>: 34.6 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 100.00% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution
{
public int[] ProductExceptSelf(int[] nums)
{
int len = nums.Length;
int[] output1 = new int[len];//<2F><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD>
int[] output2 = new int[len];//<2F><><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD>
output1[0] = 1;
output2[len - 1] = 1;
for (int i = 1; i < len; i++)
{
output1[i] = output1[i - 1]*nums[i - 1];
output2[len - i - 1] = output2[len - i]*nums[len - i];
}
for (int i = 0; i < len; i++)
{
output1[i] *= output2[i];
}
return output1;
}
}
```
---
## <20><>Ŀ09<30><39>Ѱ<EFBFBD><D1B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
> - <20><><EFBFBD>ţ<EFBFBD>4
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>СΪ`m`<EFBFBD><EFBFBD>`n`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`nums1`<EFBFBD><EFBFBD>`nums2`<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ӷ<EFBFBD>Ϊ`O(log(m + n))`<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD>`nums1`<EFBFBD><EFBFBD>`nums2`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱΪ<EFBFBD>ա<EFBFBD>
<b>ʾ<><CABE> 1</b>:
```c
nums1 = [1, 3]
nums2 = [2]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2.0
```
<b>ʾ<><CABE> 2</b>:
```c
nums1 = [1, 2]
nums2 = [3, 4]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> (2 + 3)/2 = 2.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><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD>е<EFBFBD>Ԫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><EFBFBD>е<EFBFBD>Ԫ<EFBFBD>ء<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĿҪ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ӷ<EFBFBD>Ϊ`O(log(m + n))`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD> `O(m + n)`<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><EFBFBD>ԣ<EFBFBD>ͨ<EFBFBD><EFBFBD>ÿ<EFBFBD>αȽϣ<EFBFBD><EFBFBD>ܹ<EFBFBD>ֱ<EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD>`O(log(m + n))`<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```c
nums1: [a1,a2,a3,...am]
nums2: [b1,b2,b3,...bn]
[nums1[:i],nums2[:j] | nums1[i:], nums2[j:]]
nums1 ȡ i <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nums2 ȡ j = (m+n+1)/2 - i <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
```
ֻҪ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <b><3E><><EFBFBD><EFBFBD></b> <20><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `|` <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>Ա߲<D4B1><DFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>ַ<EFBFBD><D6B7>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>ʵ<EFBFBD>`i`<EFBFBD><EFBFBD>
- ״̬<D7B4><CCAC>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ: 160 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 99.18% <20><><EFBFBD>û<EFBFBD>
- <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>: 26.8 MB, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 5.05% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public double FindMedianSortedArrays(int[] nums1, int[] nums2) {
int m = nums1.Length;
int n = nums2.Length;
if (m > n)
return FindMedianSortedArrays(nums2, nums1);
int k = (m + n + 1)/2;
int left = 0;
int right = m;
while (left < right)
{
int i = (left + right)/2;
int j = k - i;
if (nums1[i] < nums2[j - 1])
left = i + 1;
else
right = i;
}
int m1 = left;
int m2 = k - left;
int c1 = Math.Max(m1 == 0 ? int.MinValue : nums1[m1 - 1],
m2 == 0 ? int.MinValue : nums2[m2 - 1]);
if ((m + n)%2 == 1)
return c1;
int c2 = Math.Min(m1 == m ? int.MaxValue : nums1[m1],
m2 == n ? int.MaxValue : nums2[m2]);
return (c1 + c2)*0.5;
}
}
```
---
## <20><>Ŀ10<31><30>ȱʧ<C8B1>ĵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
> - <20><><EFBFBD>ţ<EFBFBD>41
> - <20>Ѷȣ<D1B6><C8A3><EFBFBD><EFBFBD><EFBFBD>
> - https://leetcode-cn.com/problems/first-missing-positive/
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><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>: [1,2,0]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 3
```
<b>ʾ<><CABE>2</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [3,4,-1,1]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2
```
<b>ʾ<><CABE>3</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [7,8,9,11,12]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 1
```
<b>ʾ<><CABE>4</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: [1,1]
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2
```
<b>ʵ<><CAB5>5</b>:
```c
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: []
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 1
```
<b>˵<><CBB5></b>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>Ӷ<EFBFBD>ӦΪO(n)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ʹ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀռ
**<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD>룺**
˼·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ρ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>򡱣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򡱵Ĺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`i`<EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD>`i`<EFBFBD><EFBFBD>Ӧ<EFBFBD>÷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ`i - 1`<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD>ϡ<EFBFBD>
- ִ<>н<EFBFBD><D0BD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>
- ִ<><D6B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>100 ms, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> C# <20><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD> 93.75% <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> 97.44% <20><><EFBFBD>û<EFBFBD>
```c
public class Solution {
public int FirstMissingPositive(int[] nums) {
int len = nums.Length;
for (int i = 0; i < len; i++)
{
while (nums[i] != i + 1 && nums[i] <= len && nums[i] > 0 && nums[i] != nums[nums[i] - 1])
{
int temp = nums[i];
nums[i] = nums[temp - 1];
nums[temp - 1] = temp;
}
}
for (int i = 0; i < len; i++)
{
if (nums[i] != i + 1)
{
return i + 1;
}
}
return len + 1; //nums.Length = 0
}
}
```