python-3.x - 二维数组处理
问题描述
我有一个包含 0 或 1 的二维数组,我想编写一个程序来检查是否有两个 1 位于同一行或列上。它应该是一个 O(n**2) 算法。我在python中编写了一个循环遍历数组的for循环,但我不知道如何检查行或列中是否包含两个1,也许有人可以给我一些提示。提前致谢
a = [[1,0,1,1],[0,1,0,1]]
for i in range(len(a)) :
for j in range(len(a[i])) :
print(a[i][j], end=" ")
print()
解决方案
def two_adjacent_ones(arr):
for i in range(len(arr) - 1):
for j in range(len(arr[i]) - 1):
if (arr[i][j] == 1 and arr[i][j + 1] == 1) or (arr[i][j] == 1 and arr[i + 1][j] == 1):
return True
last_row = arr[len(arr) - 1]
for i in range(len(last_row) - 1):
if last_row[i] == last_row[i + 1] and last_row[i] == 1:
return True
last_column = [arr[i][-1] for i in range(len(arr) - 1)]
for i in range(len(last_column) - 1):
if last_column[i] == last_column[i + 1] and last_column[i] == 1:
return True
return False
b = [[1, 0, 1, 0], [0, 1, 1, 0]]
print(two_adjacent_ones(b))
这是我现在想出的最迭代的而不是 Pythonic 的解决方案。
推荐阅读
- json - 计算一个特定的 json/word 出现了多少次
- ionic-framework - Ionic 2 去除离子清新剂下的线
- c# - 如何从 CosmosDB 中的特定类型获取所有项目
- c# - MVC如何将GUID转换为模型中的字符串
- javascript - 如何运行本地保存的 npm 包而不在 package.json 上设置它们?
- firebase - 如何使用 Firebase 云功能更新文档值
- html - css:如何在具有特定 2 列布局的另一个元素下浮动元素
- symfony - 无法为命名路由“克隆”生成 URL
- google-cloud-platform - 了解 GCP Dataproc 结算以及标签如何影响它
- javascript - 单击汉堡按钮时覆盖并通过同一按钮禁用它