3596. 最小花费路径交替方向 I 🔒
题目描述
给定两个整数 m
和 n
分别表示一个网格的行数和列数。
进入单元格 (i, j)
的花费定义为 (i + 1) * (j + 1)
。
路径始终从第 1 步进入单元格 (0, 0)
并支付入场花费开始。
在每一步,你移动到 相邻 的单元格,遵循交替的模式:
- 在 奇数次 移动,你必须向 右方 或 下方 移动。
- 在 偶数次 移动,你必须向 左方 或 上方 移动。
返回到达 (m - 1, n - 1)
的最小总花费。如果不可能到达,返回 -1。
示例 1:
输入:m = 1, n = 1
输出:1
解释:
- 你从单元格
(0, 0)
开始。 - 进入
(0, 0)
的花费是(0 + 1) * (0 + 1) = 1
。 - 由于你已经到达了目标,总花费为 1。
示例 2:
输入:m = 2, n = 1
输出:3
解释:
- 你从单元格
(0, 0)
开始,花费为(0 + 1) * (0 + 1) = 1
。 - 第 1 次移动(奇数次):你可以向下移动到
(1, 0)
,花费为(1 + 1) * (0 + 1) = 2
。 - 因此,总花费是
1 + 2 = 3
。
提示:
1 <= m, n <= 106
解法
方法一:脑筋急转弯
由于题目中给定的移动规则,实际上只有以下三种情况可以到达目标单元格:
- 行列数为 \(1 \times 1\) 的网格,花费为 \(1\)。
- 行数为 \(2\),列数为 \(1\) 的网格,花费为 \(3\)。
- 行数为 \(1\),列数为 \(2\) 的网格,花费为 \(3\)。
对于其他情况,无法到达目标单元格,返回 \(-1\)。
时间复杂度 \(O(1)\),空间复杂度 \(O(1)\)。
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|