小F的矩阵值调整

问题描述

小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]]

思路:

  1. 遍历矩阵中的每个元素。
  2. 判断每个元素的奇偶性:
    • 如果是偶数,乘以 3。
    • 如果是奇数,保持原值不变。
  3. 返回修改后的矩阵。

代码实现:

代码解释:

  1. 函数 solution

    • 该函数接受一个二维 vector(矩阵)作为输入,遍历每个元素。
    • 如果元素是偶数,则将其值乘以 3。
    • 如果元素是奇数,则不进行任何修改,保持原值。
    • 修改完成后,返回新的矩阵。
  2. 主函数 main

    • 定义了三个测试用例。
    • 使用 solution 函数计算出修改后的矩阵,并与预期的矩阵进行比较,输出 1 表示成功,0 表示失败。

解释测试样例:

  1. 测试用例 1 : 输入:a = {``{1, 2, 3}, {4, 5, 6}}

    • 1 是奇数,保持不变。
    • 2 是偶数,变为 6
    • 3 是奇数,保持不变。
    • 4 是偶数,变为 12
    • 5 是奇数,保持不变。
    • 6 是偶数,变为 18。 输出:{``{1, 6, 3}, {12, 5, 18}}
  2. 测试用例 2 : 输入:a = {``{7, 8, 9}, {10, 11, 12}}

    • 7 是奇数,保持不变。
    • 8 是偶数,变为 24
    • 9 是奇数,保持不变。
    • 10 是偶数,变为 30
    • 11 是奇数,保持不变。
    • 12 是偶数,变为 36。 输出:{``{7, 24, 9}, {30, 11, 36}}
  3. 测试用例 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),如果我们不考虑返回结果的矩阵,我们只用了常数额外的空间来存储中间结果。
相关推荐
cpp_250111 分钟前
P10570 [JRKSJ R8] 网球
数据结构·c++·算法·题解
cpp_250118 分钟前
P8377 [PFOI Round1] 暴龙的火锅
数据结构·c++·算法·题解·洛谷
uesowys27 分钟前
Apache Spark算法开发指导-Factorization machines classifier
人工智能·算法
程序员老舅38 分钟前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
划破黑暗的第一缕曙光1 小时前
[C++]:2.类和对象(上)
c++·类和对象
季明洵1 小时前
C语言实现单链表
c语言·开发语言·数据结构·算法·链表
shandianchengzi1 小时前
【小白向】错位排列|图文解释公考常见题目错位排列的递推式Dn=(n-1)(Dn-2+Dn-1)推导方式
笔记·算法·公考·递推·排列·考公
I_LPL1 小时前
day26 代码随想录算法训练营 回溯专题5
算法·回溯·hot100·求职面试·n皇后·解数独
Yeats_Liao1 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
墨雪不会编程1 小时前
C++之【深入理解Vector】三部曲最终章
开发语言·c++