DP 扫描线 - wenzhoullq/leetcode GitHub Wiki

模板

本质上也是线性DP,它依赖的是dp[1,n-1],然后查找满足的下标,与lis不同的是,它倒推找到的就是最大值了,找到就可以break了

    int[][] dp=new int[len+1][2];
    Arrays.sort(events,(a,b)->a[1]-b[1]);//结束时间排序
    for(int i=1;i<nums.length;i++){
           int start=,end=;
           while(left<right)//二分求目标
           if()检查下标是否越界
           dp[][]//取和不取
      }

题目

P1868 饥饿的奶牛

1235. 规划兼职工作

1751. 最多可以参加的会议数目 II

2008. 出租车的最大盈利

2054. 两个最好的不重叠活动