Skip to content

Commit c7ed89a

Browse files
committed
264th Commit
1 parent afc09f6 commit c7ed89a

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ FROM node:20-slim
33
WORKDIR /usr/src/app
44
ADD . .
55

6+
ENV COREPACK_INTEGRITY_KEYS="0"
67
ENV PNPM_HOME="/pnpm"
78
ENV PATH="$PNPM_HOME:$PATH"
89
RUN corepack enable pnpm
9-
RUN corepack use pnpm@9
10+
RUN corepack use pnpm@9.x

src/page-3/283. Move Zeroes/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020

2121
## 解題
2222

23+
使用雙指標 (Two Pointers):
24+
25+
- 走訪指標 (`i`) 逐個檢查陣列中的元素
26+
- 非零指標 (`nonZeroIndex`) 記錄下一個非零元素應該存放的位置
27+
28+
當遇到非零元素時,我們就將其與 `nonZeroIndex` 指向的元素交換,並將 `nonZeroIndex` 向前移動。
29+
2330
```ts
2431
export const moveZeroes: MoveZeroes = (nums) => {
2532
// 這將追蹤下一個非零數字應該去的索引
@@ -38,3 +45,13 @@ export const moveZeroes: MoveZeroes = (nums) => {
3845
}
3946
};
4047
```
48+
49+
`nums = [0,1,0,3,12]` 為例:
50+
51+
| `i` | `nums[i]` | `nonZeroIndex` | 操作 |
52+
| --- | --------- | -------------- | --------------------------------------------------------------------- |
53+
| 0 | 0 | 0 | 無動作 (因為是 0) |
54+
| 1 | 1 | 0 | 交換 `nums[0]``nums[1]``[1, 0, 0, 3, 12]``nonZeroIndex += 1` |
55+
| 2 | 0 | 1 | 無動作 (因為是 0) |
56+
| 3 | 3 | 1 | 交換 `nums[1]``nums[3]``[1, 3, 0, 0, 12]``nonZeroIndex += 1` |
57+
| 4 | 12 | 2 | 交換 `nums[2]``nums[4]``[1, 3, 12, 0, 0]``nonZeroIndex += 1` |

0 commit comments

Comments
 (0)