Lazy loaded image
🗒️蓝桥杯-对局匹配
00 min
2024-3-22
2024-11-25
type
status
date
slug
summary
tags
category
icon
password
😀
这次刷一道dp题,加强下思维,做了一会,直接打开官方题解研究,参考代码
notion image

📝 主旨内容

这题的意思是,给定n个数,任意两个数之间的差不为k,最多可以选出多少个数。

如果k=0的话,只需要找到不相同的数就行

这里使用set
 

如果k≠0,就需要使用动态规划了

首先要知道这里用动态规划表示的意思:即dp[i]中每一个下标表示可以上线的用户,也就是符合条件的数的个数
这时他的转换方程就是应该是递增的i
首先dp[i]有效,所以i-k就不能用,但是可以用i-2*k,而且初始化的时候已经把dp[i]存入了这个数的个数,所以dp[i]=dp[i-2*k]+dp[i]
其次是dp[i]无效,所以i-k就可以直接用dp[i]=dp[i-k]
 
得出转换方程:
dp[i]=max(dp[i-2*k]+dp[i],dp[i-k]);
 
dp[i]=max(dp[i-2*k]+dp[i],dp[i-k]);
 

🤗 最终代码(来源蓝桥官方题解)

 
 
 
💡
有关题目或文章的问题,欢迎您在底部评论区留言,一起交流~
上一篇
LeetCode-香槟塔
下一篇
蓝桥杯-发现环

Comments
Loading...