Python - 检查从矩阵的每一行中提取的元素是否可以按升序排列
给定一个矩阵,这里的任务是首先从每一行中选择一个元素,当它们按精确顺序选择时,它们可能会形成一个排序列表或升序列表。如果可能返回 True 否则返回 False。
Input : test_list = [[3, 4, 6, 2], [3, 4, 9, 1], [8, 5, 4, 7], [9, 1, 2, 3]]
Output : True
Explanation : [2, 3, 4, 9] is possible increasing list.
Input : test_list = [[3, 4, 6, 2], [3, 4, 9, 1], [8, 5, 4, 7], [1, 1, 2, 3]]
Output : False
Explanation : Increasing list not possible.
方法:使用循环和min()
在这里,我们不断更新每一行的最小可能元素,如果最小元素大于前一个元素,则未找到最小值,结果标记为 false 表示不可能升序列表。
程序:
Python3
# initializing list
test_list = [[3, 4, 6, 2], [3, 4, 9, 1], [8, 5, 4, 7], [9, 1, 2, 3]]
# printing original list
print("The original list is : " + str(test_list))
# initializing with min of 1st row
cur = min(test_list[0])
res = True
for sub in test_list[1:]:
res = False
# checking row for greater than previous minimum
for idx in sub:
if idx >= cur:
res = True
# storing new minimum
cur = idx
break
if not res:
break
# printing result
print("Is ascending list possible ? : " + str(res))
输出:
The original list is : [[3, 4, 6, 2], [3, 4, 9, 1], [8, 5, 4, 7], [9, 1, 2, 3]]
Is ascending list possible ? : True