zoukankan      html  css  js  c++  java
  • 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+1, l=2 --> j=i+l-1(这里要找j和i以及l的关系)  

    第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

    欲望才是原动力
  • 相关阅读:
    1265 四点共面
    1298 圆与三角形
    1264 线段相交
    1185 威佐夫游戏 V2
    1183 编辑距离
    1089 最长回文子串
    HTML5 boilerplate 笔记(转)
    Grunt上手指南(转)
    RequireJS 2.0初探
    RequireJS学习笔记
  • 原文地址:https://www.cnblogs.com/Nooni/p/12805932.html
Copyright © 2011-2022 走看看