图解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码实现

package com.kuang.study.lanqiao;


public class Main {
    public static void main(String[] args) {
        int n=8;//机器人个数
        int[] pre={0,0,0,0,1,0,2,3,5};//选择这个工作后的其那句最近工作下标
        int[] profit = {5,1,8,4,6,3,2,4};	//工作收益
        int opt[]=new int[n+1];

        opt[0]=0;

        for (int i = 1; i < opt.length; i++) {
            opt[i]=Math.max(opt[i-1],opt[pre[i]]+profit[i-1]);//比较2种方案,选择和不选择,取收益最大的方案
        }

        for(int i=1;i<n+1;i++){
            System.out.println(opt[i]);
        }

    }
}



Logo

一站式虚拟内容创作平台,激发创意,赋能创作,进入R空间,遇见同道,让优质作品闪耀发光。​

更多推荐