We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e17d1ff commit 290c6b0Copy full SHA for 290c6b0
数据结构/数组/283.移动零.md
@@ -0,0 +1,23 @@
1
+## 题目
2
+给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
3
+
4
+## 思路
5
+1. 思路一:遍历数组将所有非零数字取出来放到临时数组中,接着讲数组剩余部分设置为 0,再复制到原数组。时间复杂度 O(n), 空间复杂度 O(n)
6
+2. 思路二:快慢指针,快指针遍历数组,如果遇到非零数字,且与慢指针不是指向同一元素,则彼此互换元素。
7
8
+## 代码
9
+```js
10
+// 快慢指针解法
11
+var moveZeroes = function (nums) {
12
+ let k = 0 //慢指针
13
+ for(let i=1; i<nums.length; i++) { // 遍历数组
14
+ if(nums[i] !== 0) {
15
+ if(i !== k) {
16
+ [ nums[i], nums[k] ] = [ nums[k], nums[i] ]
17
+ }
18
+ // 当数组里面没有 0 时,只需要移动指针就好
19
+ k++
20
21
22
+}
23
+```
数据结构/数组/数组.md
@@ -7,7 +7,7 @@
> 通常使用两个或多个不同位置的指针,通过不同速度、方向来实现空间复杂度度为 O(1) 的算法。常用于有序数组
-- 283. 移动零
+- [283. 移动零](./283.移动零.md)
- 27. 移除元素
- 26. 删除排序数组中的重复项
- 80. 删除排序数组中的重复项 II
0 commit comments