蓝桥杯题-按摩师

题目:

一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。

在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。(取中间,放两边)

给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。

预约序列 nums= {1,5,6,9,19}

比对 1+6+19 和 5+9 的最大值

//初始化记录总时长分钟数

int[] dp = new int[nums.length];

//预约1,2号,固定数值

dp[0] = nums[0];

dp[1] = Math.max(nums[0] , nums[1]);

//大于2个预约,取中间,放两边

dp[i] = Math.max(dp[i-1] , nums[i]+dp[i-2]);

解答:

@Test
    public void test4() {
        //初始化预约数
        int[] nums = { 1,5,6,9,19 };
        //初始化记录总时长分钟数
        int[] dp = new int[nums.length];
        //预约1,2号,固定数值
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0] , nums[1]);
        //大于2个预约,取中间,放两边
        for(int i=2;i<nums.length;i++){
            dp[i] = Math.max(dp[i-1] ,  nums[i]+dp[i-2]);
        }
        System.out.println("max min"+dp[dp.length-1]);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值