当前位置: 首页 > news >正文

lis|

lc1626

//双升sort后lis dp

for (int j = 0; j < i; j++)
//if condition
dp[i] = max(dp[i],dp[j] + as[i].second);

class Solution {
typedef pair<int, int> pii;
//sort后lis dp
public:
int bestTeamScore(vector<int>& scores, vector<int>& ages) {
int n = ages.size();
vector<pii> as;
for (int i = 0; i < n; i++) {
as.push_back({ages[i], scores[i]});
}

sort(as.begin(), as.end(), [](const pii& a, const pii& b) {
if (a.first != b.first) return a.first < b.first;
return a.second < b.second;
});//双升

vector<int> dp(n);
int max_score = 0;
for (int i = 0; i < n; i++) {
dp[i] = as[i].second; //init
// 年龄≤当前且分数≤当前的,累加最大得分


for (int j = 0; j < i; j++) {
if (as[j].second <= as[i].second) {
dp[i] = max(dp[i],dp[j] + as[i].second);
}
}
max_score = max(max_score, dp[i]);
}
return max_score;
}
};

优雅的idx写法

class Solution {
public:
int bestTeamScore(vector<int>& scores, vector<int>& ages) {
int n=ages.size(),ans=0;
vector<int> index(n),dp(n);//下标数组和dp数组
iota(index.begin(),index.end(),0);//index赋值为0~n-1
sort(index.begin(),index.end(),[&](int i,int j){return ages[i]==ages[j]?scores[i]<scores[j]:ages[i]<ages[j];});//先按年龄升序,再按分数升序进行排序


for(int i=0;i<n;++i)//递推过程
{
int res=0;
for(int j=0;j<i;++j)
if(scores[index[i]]>=scores[index[j]])//满足约束,进行保留
res=max(res,dp[j]);

dp[i]=res+scores[index[i]],ans=max(ans,dp[i]);//得到dp[i],并维护ans
}
return ans;
}
};

http://www.cnnetsun.cn/news/146373.html

相关文章:

  • 微服务容器化部署的3大核心挑战与实战解决方案
  • Kotaemon支持自定义主题皮肤,品牌个性化展示
  • 超长需求处理与流式输出在 Markdown 思维导图编辑器中的应用
  • Charles抓包实战:从零破解APP数据交互全流程
  • FFMPEG SIMD编程深度解析:解锁多媒体处理的性能密码
  • 企业级项目中el-config-provider的7个实战技巧
  • 零基础入门:用Python Web框架建第一个网站
  • Unity AVPRO插件终极指南:高效播放大分辨率视频的完整解决方案
  • 传统vsAI:Flutter开发效率对比实验
  • LuCI开发终极指南:在离线环境中构建OpenWrt管理界面
  • Hutool Java工具库:从零开始的完整安装配置指南
  • 轻松下载网页视频图像:VideoDownloadHelper插件终极指南
  • 别再“邪修”Prompt了!向Claude团队学习如何构建提示词
  • Faceniff入门指南:网络安全基础知识
  • Charles抓包零基础入门:小白也能看懂的网络调试指南
  • SwiftUI动画库深度解析与实战应用指南
  • 基于Kotaemon的舆情分析系统设计架构
  • RAG 是什么?Embedding 是什么?用一个例子讲清楚
  • 如何快速掌握Foremost文件分离工具:Windows版终极指南
  • WampServer 3.1.7:Windows平台终极开发环境解决方案
  • 揭秘AdGuardHome的3大极速匹配算法:从百万规则到微秒响应的终极优化方案
  • 终极iOS自动化测试指南:WebDriverAgent完整使用教程
  • 基于DP动态规划的全局最优能量管理策略——ECVT车辆构型与电量维持型电池SOC策略
  • jQuery UI API 类别 - 特效(Effects)
  • AI写论文哪个软件最好?让数字学伴照亮知识的长夜
  • FaceFusion支持时间轴编辑,精确到每一帧
  • Kotaemon能否替代传统CRM客服模块?答案是肯定的
  • 3步搞定Beszel大版本升级:告别数据丢失和兼容性恐慌
  • 对比传统try-catch与现代化retry库的效率差异
  • 5分钟让你的终端告别单调:Oh-My-Bash终极美化指南