C++11 获取地址消毒器致命信号 bool comp(vectorv1,vectorv2){ 返回(v2[1]>v1[1]); } 类解决方案{ 公众: int dp[20004][10002]; 整数求解(向量和过程,长整数时间,整数n){ 如果(dp[时间][n

C++11 获取地址消毒器致命信号 bool comp(vectorv1,vectorv2){ 返回(v2[1]>v1[1]); } 类解决方案{ 公众: int dp[20004][10002]; 整数求解(向量和过程,长整数时间,整数n){ 如果(dp[时间][n,c++11,C++11,获取地址消毒器致命信号 bool comp(vectorv1,vectorv2){ 返回(v2[1]>v1[1]); } 类解决方案{ 公众: int dp[20004][10002]; 整数求解(向量和过程,长整数时间,整数n){ 如果(dp[时间][n]!=-1){ 返回dp[时间][n]; } 如果(n>=courses.size()){ 返回dp[time][n]=0; } 如果(courses[n][0]+timeintdp[20004][10002];刚好在1GB以下,这可能有点太多

获取地址消毒器致命信号
bool comp(vectorv1,vectorv2){
返回(v2[1]>v1[1]);
}
类解决方案{
公众:
int dp[20004][10002];
整数求解(向量和过程,长整数时间,整数n){
如果(dp[时间][n]!=-1){
返回dp[时间][n];
}
如果(n>=courses.size()){
返回dp[time][n]=0;
}

如果(courses[n][0]+time
intdp[20004][10002];
刚好在1GB以下,这可能有点太多了。
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);
    }
};