算法题,c++,排序+动态规划,查找游戏中的弱角色

本文介绍了如何使用C++的排序和动态规划算法解决LeetCode上的一个问题,即查找游戏中的弱角色。通过将角色的攻击值从大到小排序,防御值从小到大排序,然后应用动态规划策略确定弱角色的数量。
摘要由CSDN通过智能技术生成

算法题,c++,排序+动态规划,查找游戏中的弱角色

leetcode上面的题目,题目具体内容:
1、你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。

2、如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级,则认为该角色为 弱角色 。更正式地,如果认为角色 i 弱于 存在的另一个角色 j ,那么 attackj > attacki 且 defensej > defensei 。

3、返回 弱角色 的数量。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/the-number-of-weak-characters-in-the-game

思考与解法:

思路:
0、当角色数量较多时必然用动态规划,用动态规划必须先让数据分布有大小规律,需要用到std自带的排序算法sort,使用sort时注意避免传入等号判断,具体看下面这个博文

c++,stl容器,疑难未解问题:容器的sort排序算法传入的排序规则必须是<,>,而不能是<=,>=,否则运行报错,注意规避

1、攻击值从大到小排列,防御值从小到大排列
2、确保后面的角色攻击力小于等于前面的角色
3、使用动态规划法确定前面已经出现的防御值最大值,后面所有防御值小于最大值时,判断攻击值是否和当前最大防御值角色相等
4、攻击值与当前最大防御值不相等的全部是弱角色,因为排序保证了不相等就是前面大于后面
5、最大防御值小于当前防御值时则更新最大防御值和攻击值

int numberOfWeakCharacters(vector<vector<int>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值