Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查整数列表(Python)中是否有升序_Python_List_Algorithm_Sorting_Integer - Fatal编程技术网

检查整数列表(Python)中是否有升序

检查整数列表(Python)中是否有升序,python,list,algorithm,sorting,integer,Python,List,Algorithm,Sorting,Integer,给出如下列表: [[2, 7], [1, 4], [0, 5, 6]] 如何检查此列表中是否存在有效的升序。例如,这是正确的,因为我可以形成以下顺序: [2,4,5] 我需要一个算法,它可以找到一个任意大的列表,任意大小的列表的有效顺序。不会重复任何整数值,并且子列表已排序 编辑: 这是我目前尝试过的,但它无法扩展到更大的列表 allNumbers = [[2, 7], [1, 4], [0, 5, 6]] smallest = min(allNumbers[0]) largest = m

给出如下列表:

[[2, 7], [1, 4], [0, 5, 6]]
如何检查此列表中是否存在有效的升序。例如,这是正确的,因为我可以形成以下顺序:

[2,4,5]
我需要一个算法,它可以找到一个任意大的列表,任意大小的列表的有效顺序。不会重复任何整数值,并且子列表已排序

编辑: 这是我目前尝试过的,但它无法扩展到更大的列表

allNumbers = [[2, 7], [1, 4], [0, 5, 6]]

smallest = min(allNumbers[0])
largest = max(allNumbers[2])
for n in allNumbers[1]:
    if smallest < n < largest:
        return True
allNumbers=[[2,7]、[1,4]、[0,5,6]]
最小值=最小值(所有数字[0])
最大值=最大值(所有数字[2])
对于所有数字[1]中的n:
如果最小值
您可以使用像这样的贪婪算法来解决它

a = [[2, 7], [1, 4], [0, 5, 6]]
current = min(a[0])

possible = True
for l in a[1:]:
    possible = False
    for i in l:
        if i >= current:
            possible = True
            current = i
            break
    if not possible:
        break
print(possible) #returns True    

对于每个子列表,找到仍然比前一个最小元素大的最小元素。如果没有这样的元素,那么就没有提升路径

from math import inf

def ascend(xss):
    smallest = -inf
    path = []
    for xs in xss:
        smallest = min(x for x in xs if x > smallest)
        path.append(smallest)
    return path
这是我的答案

def tell_if_the_lists_are_in_order(lists):
    min_first = min(lists[0])  # for empty input, return True.
    prev_min = min_first
    for sublist in lists[1:]:
        min_num = min(sublist)
        max_num = max(sublist)
        if max_num <= prev_min:
            return False
        prev_min = min(x for x in sublist if x > prev_min)
    return True
def告诉\u列表是否按顺序排列(列表):
min_first=min(列出[0])#对于空输入,返回True。
上一个最小值=最小值第一个
对于列表[1:]中的子列表:
最小值=最小值(子列表)
max_num=max(子列表)
如果最大值(上一个最小值)
返回真值
以下是我的答案:

def IsAscending(list):
    ascend = True
    int a;
    for i in list:
        if i == 0:
            a = list[i]
        else:
            if list[i] >= a:

                a = list[i]
            else:
                ascend = False
    return ascend

这是我得出的最终解决方案

def validList(chLocations):
     ascendingOrder = []

     smallest = min(chLocations[0])
     maximum = max(chLocations[-1])

     ascendingOrder.append(smallest)
     chLocations = chLocations[1:]

     for i in range(len(chLocations)-1):
         for number in chLocations[i]:
             if number > max(ascendingOrder):
                 ascendingOrder.append(number)
                 break
     ascendingOrder.append(maximum)

     if sorted(ascendingOrder) == ascendingOrder:
          return True
     else:
          return False
说明:

[[2, 7], [1, 4], [0, 5, 6]] --> [2,4,5] == True
[[1, 3], [7], [2]] --> [1,7,2] == False

欢迎来到SO。你也可以发布你尝试过的内容吗?我刚刚添加了我尝试过的内容,但我一直在想,对于纵向大于3的列表,它将如何扩展?你到底是什么意思?什么算是“此列表中的有效升序”?不清楚你在问什么。很乐意帮忙。:)那么对于
[[2],[1],[3]]
您想要
True
?因为这就是您的解决方案所说的(在添加缺少的
)之后)。
>>> validList([[2, 7], [1, 4], [0, 5, 6]]) 
True
>>> validList([[1, 3], [7], [2]])
False
[[2, 7], [1, 4], [0, 5, 6]] --> [2,4,5] == True
[[1, 3], [7], [2]] --> [1,7,2] == False