LeetCode 1626. 无矛盾的最佳球队(最大上升子序DP)
文章目录
- 1. 题目
- 2. 解题
1. 题目
假设你是球队的经理。对于即将到来的锦标赛,你想组合一支总体得分最高的球队。球队的得分是球队中所有球员的分数 总和 。
然而,球队中的矛盾会限制球员的发挥,所以必须选出一支 没有矛盾 的球队。
如果一名年龄较小球员的分数 严格大于 一名年龄较大的球员,则存在矛盾。同龄球员之间不会发生矛盾。
给你两个列表 scores 和 ages,其中每组 scores[i] 和 ages[i] 表示第 i 名球员的分数和年龄。
请你返回 所有可能的无矛盾球队中得分最高那支的分数 。
示例 1:
输入:scores = [1,3,5,10,15], ages = [1,2,3,4,5]
输出:34
解释:你可以选中所有球员。示例 2:
输入:scores = [4,5,6,5], ages = [2,1,2,1]
输出:16
解释:最佳的选择是后 3 名球员。注意,你可以选中多个同龄球员。示例 3:
输入:scores = [1,2,3,5], ages = [8,9,10,1]
输出:6
解释:最佳的选择是前 3 名球员。提示:
1 <= scores.length, ages.length <= 1000
scores.length == ages.length
1 <= scores[i] <= 10^6
1 <= ages[i] <= 1000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/best-team-with-no-conflicts
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
类似题目:
- 动态规划应用–最长递增子序列 LeetCode 300
class Solution {typedef pair<int, int> pii;
public:int bestTeamScore(vector<int>& scores, vector<int>& ages) {int n = scores.size();vector<pii> score_Age(n);for(int i = 0; i < n; i++) {score_Age[i] = {scores[i], ages[i]};}sort(score_Age.begin(), score_Age.end(),[&](auto& a, auto& b){return (a.second < b.second || (a.second == b.second && a.first < b.first));});//年龄小的在前,同龄的话,能力小的在前//然后DP寻找上升子序的最大和vector<int> dp(n, 0);dp[0] = score_Age[0].first;int maxscore = dp[0];for(int i = 1; i < n; ++i){int curscore = score_Age[i].first;dp[i] = score_Age[i].first;//初始化为自己的分数for(int j = i-1; j >= 0; j--){int prevscore = score_Age[j].first;if(curscore >= prevscore){ //当前人的能力值不是下降的, 加入队伍dp[i] = max(dp[i], dp[j]+curscore);}}maxscore = max(maxscore, dp[i]);}return maxscore;}
};
184 ms 19 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 1626. 无矛盾的最佳球队(最大上升子序DP)相关推荐
- LeetCode 1615. 最大网络秩 / 2389. 和有限的最长子序列 / 1626. 无矛盾的最佳球队(排序+动态规划)
1615. 最大网络秩 2023.3.15 每日一题 题目描述 n 座城市和一些连接这些城市的道路 roads 共同组成一个基础设施网络.每个 roads[i] = [ai, bi] 都表示在城市 a ...
- LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)
1. 题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现. 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样. 请计算最多 ...
- LeetCode 1691. 堆叠长方体的最大高度(排序+最大上升子序DP)
文章目录 1. 题目 2. 解题 2.1 暴力超时解 2.2 排序+最长上升子序 463 / 3709,前 12.5% 1240 / 9290,前13.3% 1. 题目 给你 n 个长方体 cuboi ...
- LeetCode 1713. 得到子序列的最少操作次数(最长上升子序DP nlogn)
文章目录 1. 题目 2. 解题 1. 题目 给你一个数组 target ,包含若干 互不相同 的整数,以及另一个整数数组 arr ,arr 可能 包含重复元素. 每一次操作中,你可以在 arr 的任 ...
- LeetCode 1671. 得到山形数组的最少删除次数(最长上升子序DP nlogn)
文章目录 1. 题目 2. 解题 2.1 n^2 解法 2.2 nlogn 解法 197 / 1891,前10.4% 435 / 6154,前7.07% 前三题如下: LeetCode 5557. 最 ...
- 如果我的接口必须返回Task,那么实现无操作的最佳方法是什么?
本文翻译自:If my interface must return Task what is the best way to have a no-operation implementation? I ...
- [贪心|字符串] leetcode 3 无重复字符的最长子串
[贪心|字符串] leetcode 3 无重复字符的最长子串 1.题目 题目链接 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例1: 输入: "abcabcbb" ...
- 关于自然数系统的无矛盾性
在自然数系统里面是否存在矛盾?1900年,德国数学家希尔伯特提出了这个问题,摆在23个问题的第二个未解决问题. 数千年来,国人"打算盘"的经验,表明算盘"打"不 ...
- 【LeetCode】【HOT】105. 从前序与中序遍历序列构造二叉树(哈希表+递归)
[LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 文章目录 [LeetCode][HOT]105. 从前序与中序遍历序列构造二叉树 package hot;import java ...
最新文章
- C++文件读写——字符串分割
- oracle触发器超过上限,ORACLE系统触发器的疑问,限制IP登录数
- React性能优化:immutability-helper
- 电脑常见的VGA、DVI、PS/2、USB等接口知识笔记,值得收藏!
- 详解spring框架入门到精通
- 湖南计算机软件水平考试,2021年湖南省计算机软考职称考试 网络工程师 信息系统项目管理师报名考试...
- vue向ifarm传值_vue组件间传值
- 微信小程序实现日历功能(附加签到、迟到、未签的状态显示)
- byte拷贝java_Java字节流实现文件夹的拷贝
- 关于税控的一些问题总结
- 戴尔电脑硬件自检教程
- apq用linux镜像,apq模拟器如何使用 apq模拟器使用方法教程
- Linux C程序访问NULL指针
- 2020年GitHub 上那些优秀Android开源库,这里是Top10!
- javaweb JAVA JSP水费管理系统JSP电费管理系统JSP缴费管理系统JSP水费缴费系统JSP水电费管理
- 实验三十五 Windows Server 2012 RDS桌面虚拟化之六VDI虚拟桌面的用户管理和安全防护
- 推荐一个java技术文章公众号
- 原生js实现数据双向绑定
- 失眠尽快入睡小妙招,这些助眠产品让你一招入睡
- Latch的使用详解