首页 > 解决方案 > 获取地址消毒剂致命信号

问题描述

bool comp(vector<int>v1,vector<int>v2){
        return(v2[1]>v1[1]); 
    }
class Solution {
public:
    int dp[20004][10002];
    int solve(vector<vector<int>>& courses,long int time,int n){
        if(dp[time][n]!=-1){
            return dp[time][n];
        }
        if(n>=courses.size()){
            return dp[time][n]=0;
        }
        if(courses[n][0]+time<=courses[n][1]){
            return dp[time][n]=max(solve(courses,time,n+1),1+solve(courses,time+courses[n][0],n+1));
        }
        else{
            return dp[time][n]=solve(courses,time,n+1);
        }
        
    }
    void init(){
        for(auto i=0;i<10002;i++){
            for(auto j=0;j<10002;j++){
                dp[i][j]=-1;
            }
        }
    }
    int scheduleCourse(vector<vector<int>>& courses) {
        init();
        sort(courses.begin(),courses.end(),comp);
        return solve(courses,0,0);
    }
};

问题链接:https: //leetcode.com/problems/course-schedule-iii/ 不知道为什么会出错,我做了很多研究,但都是徒劳的。任何帮助将不胜感激。

标签: c++11

解决方案


推荐阅读