问题描述
小F得到了一个矩阵。如果矩阵中某一个格子的值是偶数,则该值变为它的三倍;如果是奇数,则保持不变。小F想知道调整后的矩阵是什么样子的。
测试样例
样例1:
输入:
a = [[1, 2, 3], [4, 5, 6]]
输出:[[1, 6, 3], [12, 5, 18]]
样例2:
输入:
a = [[7, 8, 9], [10, 11, 12]]
输出:[[7, 24, 9], [30, 11, 36]]
样例3:
输入:
a = [[2, 4], [6, 8]]
输出:[[6, 12], [18, 24]]
思路:
- 遍历矩阵中的每个元素。
- 判断每个元素的奇偶性:
- 如果是偶数,乘以 3。
- 如果是奇数,保持原值不变。
- 返回修改后的矩阵。
代码实现:
代码解释:
-
函数
solution
:- 该函数接受一个二维
vector
(矩阵)作为输入,遍历每个元素。 - 如果元素是偶数,则将其值乘以 3。
- 如果元素是奇数,则不进行任何修改,保持原值。
- 修改完成后,返回新的矩阵。
- 该函数接受一个二维
-
主函数
main
:- 定义了三个测试用例。
- 使用
solution
函数计算出修改后的矩阵,并与预期的矩阵进行比较,输出1
表示成功,0
表示失败。
解释测试样例:
-
测试用例 1: 输入:
a = {{1, 2, 3}, {4, 5, 6}}
1
是奇数,保持不变。2
是偶数,变为6
。3
是奇数,保持不变。4
是偶数,变为12
。5
是奇数,保持不变。6
是偶数,变为18
。 输出:{{1, 6, 3}, {12, 5, 18}}
-
测试用例 2: 输入:
a = {{7, 8, 9}, {10, 11, 12}}
7
是奇数,保持不变。8
是偶数,变为24
。9
是奇数,保持不变。10
是偶数,变为30
。11
是奇数,保持不变。12
是偶数,变为36
。 输出:{{7, 24, 9}, {30, 11, 36}}
-
测试用例 3: 输入:
a = {{2, 4}, {6, 8}}
2
是偶数,变为6
。4
是偶数,变为12
。6
是偶数,变为18
。8
是偶数,变为24
。 输出:{{6, 12}, {18, 24}}
时间复杂度:
- 时间复杂度为 O(n * m),其中
n
是矩阵的行数,m
是每行的列数。 - 因为我们需要访问每个矩阵元素一次。
空间复杂度:
- 空间复杂度为 O(1),如果我们不考虑返回结果的矩阵,我们只用了常数额外的空间来存储中间结果。