Skip to content

Commit df13139

Browse files
committed
更新md
更新md
1 parent f7ebd34 commit df13139

7 files changed

Lines changed: 60 additions & 5 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
|[Python数据分析](./data_analysis/main.md)|《深入浅出统计学》,numpy,pandas基础概念及练习等......|
77
|[Python爬虫](./spiders/main.md)|python爬虫基础库requests,beautifulsoup,xpath,selenium,代理池,部分网站爬虫等......|
88
|[TCP/IP与HTTP协议](./network_protocol/main.md)|网络基础知识,tcp/ip协议与http协议等......|
9-
|[LeetCode刷题](./leetcode/main.md)|leetcode分类算法刷题,数组,链表,哈希表,字符串等......|
9+
|[LeetCode-数组](./leetcode_array/main.md)|leetcode数组类算法刷题。|

leetcode/main.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

leetcode/数组.md

Lines changed: 0 additions & 2 deletions
This file was deleted.

leetcode_array/main.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
## LeetCode数组
2+
1. [两数之和](两数之和.md)
3+
2. [删除排序数组中的重复项](删除排序数组中的重复项.md)
4+
3. [移除元素](移除元素.md)
File renamed without changes.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## 删除排序数组中的重复项
2+
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
3+
不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
4+
示例:
5+
```python
6+
给定 nums = [0,0,1,1,1,2,2,3,3,4],
7+
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4
8+
你不需要考虑数组中超出新长度后面的元素。
9+
```
10+
#### 双指针法:
11+
* 对于有序数组,利用慢指针i=0,和快指针j=1
12+
* 如果nums[i] 等于 nums[j],就增加j以跳过重复项
13+
* 如果nums[i]不等于nums[j],跳过重复项的运行已经结束,此时必须nums[j]的值复制到nums[i+1]
14+
* 时间复杂度O(n),空间复杂度O(1)
15+
16+
```python
17+
def removeDuplicates(nums):
18+
i = 0
19+
for j in range(1, len(nums)):
20+
if nums[j] == nums[i]:
21+
continue
22+
i += 1
23+
nums[i] = nums[j]
24+
return i + 1
25+
```

leetcode_array/移除元素.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## 移除元素
2+
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
3+
4+
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
5+
6+
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
7+
8+
示例:
9+
```python
10+
给定 nums = [0,1,2,2,3,0,4,2], val = 2,
11+
函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4
12+
注意这五个元素可为任意顺序。
13+
```
14+
15+
#### 双指针法:
16+
* 慢指针i=0,快指针j从0开始遍历数组。
17+
* 当nums[j]等于目标值的时候,跳过。
18+
* 当nums[j]不等于目标值的时候,nums[j]复制给nums[i],i递增。
19+
* 时间复杂度O(n),空间复杂度O(1)
20+
21+
```python
22+
def removeElement(nums, val):
23+
i = 0
24+
for j in range(0, len(nums)):
25+
if nums[j] == val:
26+
continue
27+
nums[i] = nums[j]
28+
i += 1
29+
return i
30+
```

0 commit comments

Comments
 (0)