0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
一笑而过2222:1. 求最大公约数的辅助函数 gcd(a, b) :
- 使用辗转相除法来计算两个数的最大公约数。通过不断地将较大数变为较小数,较小数变为两数相除的余数,直到余数为 0,此时较大数就是最大公约数。
2. 计算最大得分的函数 max_score(nums, k) :
- 首先确定问题的规模和状态表示:
- n 表示输入序列 nums 的长度。
- 创建一个二维列表 dp ,其中 dp[i][j] 表示前 i 个元素分成 j 个部分的最大得分。
- 然后进行状态转移:
- 对于每个 i 从 1 到 n (遍历整个序列):
- 对于每个 j 从 1 到 min(i, k) (确保部分数不超过元素个数且不超过给定的要分成的部分数 k ):
- 通过遍历不同的分割点 l 从 j - 1 到 i (确定当前部分的边界),计算当前状态 dp[i][j] 。
- 计算方式是取当前状态和前 l 个元素分成 j - 1 个部分的得分加上从 l 到 i 这部分的最大公约数中的较大值。这里的最大公约数通过调用 gcd(*nums[l:i]) 来计算,表示从 l 到 i 这个子序列中所有元素的最大公约数。
- 最后返回结果:
- dp[n][k] 即为前 n 个元素分成 k 个部分的最大得分。

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
August_Li:沃日,甜蜜蜜游戏公司都特么要求这么高吗?😢

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: