📌  相关文章
📜  国际空间研究组织 | ISRO CS 2015 |问题 75(1)

📅  最后修改于: 2023-12-03 15:37:15.403000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2015 |问题 75

该问题是一个编程问题,要求编写一个程序来对一个给定的二维数组进行翻转。

问题描述

给定一个二维数组,其中每个元素都是0或1。 现在需要将每行翻转,每个0变成1,每个1变成0。

输入格式

输入的第一行包含两个空格分隔的整数n和m,表示数组的行数和列数。

接下来n行,每行包含m个用空格分隔的整数0或1,表示数组中的元素。

输出格式

输出n行,每行包含m个用空格分隔的整数0或1,表示翻转后的数组。

样例输入
3 3
1 0 1
0 1 0
1 0 1
样例输出
0 1 0
1 0 1
0 1 0
思路

这道题目的思路非常简单,主要还是要注意代码实现时的细节问题。

我们只需要对每一行进行遍历,当元素为0时,将该元素替换成1,当元素为1时,将该元素替换成0即可。

整体的时间复杂度为O(nm)。

代码实现

下面是该程序的Python实现:

n, m = map(int, input().split())

# 读入二维数组
a = []
for i in range(n):
    row = list(map(int, input().split()))
    a.append(row)

# 对每行进行翻转
for i in range(n):
    for j in range(m):
        a[i][j] = 1 - a[i][j]

# 输出翻转后的数组
for i in range(n):
    print(' '.join(str(x) for x in a[i]))

下面是该程序的 markdown 代码片段演示:

```python
n, m = map(int, input().split())

# 读入二维数组
a = []
for i in range(n):
    row = list(map(int, input().split()))
    a.append(row)

# 对每行进行翻转
for i in range(n):
    for j in range(m):
        a[i][j] = 1 - a[i][j]

# 输出翻转后的数组
for i in range(n):
    print(' '.join(str(x) for x in a[i]))