矩阵值调整 | 豆包MarsCode AI刷题

62 阅读4分钟

如果矩阵中某一个格子的值是偶数,则该值变为它的三倍;如果是奇数,则保持不变。调整后的矩阵是什么样子。

解题思路

  1. 理解题意

    • 给定一个矩阵,矩阵中的每个元素可能是奇数或偶数。
    • 如果元素是偶数,则将其变为三倍。
    • 如果元素是奇数,则保持不变。
    • 输出调整后的矩阵。
  2. 初始化

    • 创建一个空列表 adjusted_matrix,用于存储调整后的矩阵。
  3. 遍历矩阵

    • 使用嵌套的 for 循环遍历矩阵的每一行 (row) 和每一行中的每一个值 (value)。
  4. 判断并调整元素

    • 对于每一个值 value,使用条件语句 if value % 2 == 0 来判断该值是否为偶数。
    • 如果是偶数,则将该值乘以3,并将结果添加到 adjusted_row 中。
    • 如果是奇数,则将该值直接添加到 adjusted_row 中。
  5. 存储调整后的行

    • 完成一行中所有元素的调整后,将 adjusted_row 添加到 adjusted_matrix 中。
  6. 返回结果

    • 遍历完成后,adjusted_matrix 存储了调整后的矩阵,将其返回。
def solution(a: list) -> list:
    # 定义一个函数solution,它接受一个列表a作为输入,并返回一个列表。
    # 在这个上下文中,列表a代表一个矩阵,其中每个元素也是一个列表(代表矩阵的一行)。
    
    # 创建一个空列表adjusted_matrix,用于存储调整后的矩阵。
    adjusted_matrix = []
    
    # 使用for循环遍历输入矩阵a的每一行。
    for row in a:
        # 对于a中的每一行row,创建一个空列表adjusted_row,用于存储该行调整后的元素。
        adjusted_row = []
        
        # 使用另一个for循环遍历当前行row中的每一个元素value。
        for value in row:
            # 使用条件语句判断当前元素value是否为偶数。
            if value % 2 == 0:
                # 如果value是偶数,则将其乘以3,并将结果添加到adjusted_row中。
                adjusted_row.append(value * 3)
            else:
                # 如果value不是偶数(即它是奇数),则直接将其添加到adjusted_row中。
                adjusted_row.append(value)
        
        # 完成当前行所有元素的调整后,将adjusted_row添加到adjusted_matrix中。
        # 此时,adjusted_matrix包含了一个完整的调整后的行。
        adjusted_matrix.append(adjusted_row)
    
    # 当所有行都处理完毕后,返回调整后的矩阵adjusted_matrix。
    return adjusted_matrix

# 测试代码部分
if __name__ == '__main__':
    # 使用给定的测试用例调用solution函数,并打印结果。
    # 这些测试用例验证了函数是否按预期工作。
    print(solution([[1, 2, 3], [4, 5, 6]]) == [[1, 6, 3], [12, 5, 18]])  # 预期输出:True
    print(solution([[7, 8, 9], [10, 11, 12]]) == [[7, 24, 9], [30, 11, 36]])  # 预期输出:True
    print(solution([[2, 4], [6, 8]]) == [[6, 12], [18, 24]])  # 预期输出:True

运行逻辑

  1. 函数定义solution函数定义了一个接受列表a作为输入并返回另一个列表的函数。
  2. 初始化空列表:在函数内部,首先创建了一个空列表adjusted_matrix,用于存储调整后的矩阵。
  3. 遍历矩阵:使用嵌套的for循环遍历输入矩阵a的每一行和每一列。
  4. 条件判断和调整:对于每个元素,使用if语句检查它是否为偶数。如果是偶数,则将其乘以3;如果不是(即它是奇数),则保持不变。调整后的元素被添加到adjusted_row列表中。
  5. 存储调整后的行:完成当前行的所有元素调整后,将adjusted_row添加到adjusted_matrix中。
  6. 返回结果:当所有行都处理完毕后,adjusted_matrix包含了整个调整后的矩阵,并将其返回。
  7. 测试:在if __name__ == '__main__':块中,使用几个测试用例来验证solution函数是否按预期工作。每个测试用例都检查solution函数的输出是否与预期的调整后的矩阵相匹配,并打印结果(TrueFalse)。

总结

solution函数是一个用于处理矩阵的Python函数,它接受一个二维列表(即矩阵)作为输入,并返回一个新的二维列表作为输出。这个函数的目的是遍历输入矩阵的每个元素,根据元素是奇数还是偶数来调整它们的值,最终生成一个新的调整后的矩阵。