Python-按指定列排序

应用:本质计算最大不相交子区间 (Leetcode435,Leetcode452)

           需要按区间的end升序排序

Python中按指定第2列排序:

intervals=[[1,2],[2,3],[3,4],[1,3]]
intervals=sorted(intervals,key=lambda x:x[1])

>> [[1, 2], [2, 3], [1, 3], [3, 4]]

应用:算法题石头游戏中二维dp数组需要斜着遍历

           除对角线的,左上角开始斜着遍历

n=4
for l in range(2,n+1):
    for i in range(n-l+1):
        j=i+l-1
        print(i,j)

>> 0 1, 1 2, 2 3

     0 2, 1 3

     0 3

这里n=4

需要斜着遍历的次数为3次

第1次:i=0,1,2  (i从0开始,一直到n-2);j=1,2,3 (这里要找j和i以及l的关系)  j=i+1, l=2 --> j=i+l-1

第2次:i=0,1     (i从0开始,一直到n-3);j=2,3                                                 j=i+2, l=3  --> j=i+l-1

第3次:i=0        (i从0开始,一直到n-4);j=3                                                    j=i+3, l=4  --> j=i+l-1

推测l从2开始,一直到n

       每次i从0开始,一直到n-l

              同时j=i+l-1

猜你喜欢

转载自www.cnblogs.com/Nooni/p/12805932.html