排序解决方案如何解决leetcode的问题:最大宽度倾斜?

时间:2020-04-29 13:13:45

标签: python function sorting

问题如下:在给定整数数组A的情况下,斜坡是一个元组(i,j),其i

找到A中坡道的最大宽度。如果不存在,则返回0。

class Solution(object):
def maxWidthRamp(self, A):
    ans = 0
    m = float('inf')
    for i in sorted(range(len(A)), key = A.__getitem__):
        ans = max(ans, i - m)
        m = min(m, i)
    return ans

解决方案如下:对于A [i] = v之类的所有元素,让我们以其值v的排序顺序编写索引i。例如,当A [0] = 7,A [1] = 2,A [2] = 5,A [3] = 4,我们可以写出索引i = 1,i = 3,i = 2,i = 0的顺序。

然后,每当我们编写索引i时,我们都知道存在宽度i的斜率-min(indexes_previously_write)(如果该数量为正)。我们可以跟踪以前写为m的所有索引中的最小值。

这是leetcode提供的解决方案之一。但是,我不了解此解决方案的工作原理,也不知道“ A. getitem ”和“ float('inf)

是什么意思

0 个答案:

没有答案