区间DP--LeetCode5498石子游戏

本文介绍了一种使用区间动态规划策略解决LeetCode第5498题的石子游戏问题。Alice与Bob通过划分石子行来决定得分,目标是最大化Alice的得分。在游戏结束时,Alice的得分取决于她如何划分石子行以使Bob丢弃价值较低的行。例如,在给定的输入stoneValue=[6,2,3,4,5,5]中,Alice可以得到最大分数18。" 99634490,8416522,Axure RP9教程:复选框的使用与交互,"['Axure', 'AxureRP9', '产品原型', '交互设计', 'UI元素']
摘要由CSDN通过智能技术生成

题目描述:

几块石子 排成一行 ,每块石子都有一个关联值,关联值为整数,由数组 stoneValue 给出。

游戏中的每一轮:Alice 会将这行石子分成两个 非空行(即,左侧行和右侧行);Bob 负责计算每一行的值,即此行中所有石子的值的总和。Bob 会丢弃值最大的行,Alice 的得分为剩下那行的值(每轮累加)。如果两行的值相等,Bob 让 Alice 决定丢弃哪一行。下一轮从剩下的那一行开始。

只 剩下一块石子 时,游戏结束。Alice 的分数最初为 0 。

返回 Alice 能够获得的最大分数 。

输入

stoneValue = [6,2,3,4,5,5]

输出

18

样例描述

解释:在第一轮中,Alice 将行划分为 [6,2,3],[4,5,5] 。左行的值是 11 ,右行的值是 14 。Bob 丢弃了右行,Alice 的分数现在是 11 。
在第二轮中,Alice 将行分成 [6],[2,3] 。这一次 Bob 扔掉了左行,Alice 的分数变成了 16(11 + 5)。
最后一轮 Alice 只能将行分成 [2],[3] 。Bob 扔掉右行,Alice 的分数现在是 18(16 + 2)。游戏结束,因为这行只剩下一块石头了。

class Solution {
   
    // 区间DP
    int MAX_N = 500 + 10;
    int[][] dp = new int[MAX_N][MAX_N];

    public int stoneGameV(int[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值