小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),如果我们不考虑返回结果的矩阵,我们只用了常数额外的空间来存储中间结果。
相关推荐
日拱一卒的小田10 小时前
ZYNQ学习笔记4-ZYNQ的SD卡控制器2
笔记·学习
江湖人称菠萝包10 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter8-绘图
笔记·qt·qt5
xieliyu.10 小时前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
xieliyu.10 小时前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
周玉奎先生10 小时前
河南少商新材料CGM灌浆料:扎根河南工程现场的水泥基灌浆材料
经验分享·笔记·零售
辛苦才能11 小时前
C++多态原理:虚函数表的内存布局与动态绑定的汇编真相
开发语言·c++
西西弗Sisyphus11 小时前
Qt 实现一个 水波进度球
c++·qt·c
无忧.芙桃11 小时前
数据结构之排序算法(中):冒泡排序与快速排序,从相邻交换到工程级优化
c语言·c++·排序算法
不会就选b11 小时前
算法日常・每日刷题--<贪心>17
算法
动词ing11 小时前
【学习笔记】动态规划+背包问题
笔记·学习