1996. 游戏中弱角色的数量

简介: 1996. 游戏中弱角色的数量

题:角色有两种属性,攻击和防御。当角色攻击和防御有严格小于某个角色时,则该角色为“弱角色”。求数组中“弱角色”个数。


解:本题可以对按攻击对数组排序,然后比较防御。记当前最大防御角色为q,当前访问的角色为p。


如果q防御>p防御,且q攻击>p攻击,那么p就是“弱角色”。


一个问题是,如何保证q防御> p防御时,q攻击 也> p攻击?


题解中给出方法,排序时按攻击降序,攻击相同时,按防御升序。


可用反证法证明:


假设:如果 q防御比p大,且q攻击和p攻击相同。


由”攻击相同时,按防御升序“可知q一定在p后面。


但是我们从前往后遍历时q一定在p前,假设错误。

class Solution:
    def numberOfWeakCharacters(self, properties: List[List[int]]) -> int:
        properties.sort(key=lambda x: (-x[0], x[1])) #攻击降序,防御升序
        ans = 0
        maxDef = 0
        for _, def_ in properties:
            if maxDef > def_:
                ans += 1
            else:
                maxDef = max(maxDef, def_)
        return ans
相关文章
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
38 0
|
1月前
leetcode-1996:游戏中弱角色的数量
leetcode-1996:游戏中弱角色的数量
25 0
|
1月前
|
存储 C# 开发工具
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
26 0
LeetCode-1996 游戏中弱角色的数量
LeetCode-1996 游戏中弱角色的数量
|
1月前
横版游戏中角色的移动控制是如何实现的?
横版游戏中角色的移动控制是如何实现的?
32 0
|
1月前
实现横版游戏中角色的跳跃控制是如何实现的?
实现横版游戏中角色的跳跃控制是如何实现的?
30 0
|
1月前
|
小程序 数据挖掘 BI
如何统计玩家在游戏中的各种操作
如何统计玩家在游戏中的各种操作
37 0
如何实现横版游戏中角色的移动控制
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。
61 0
如何实现横版游戏中角色的跳跃控制
在写完上一篇[如何实现横版游戏中角色的移动控制]后,有朋友留言:再来个跳跃的。所以,这篇就来了,这篇教程中我将带大家来了解两种实现角色跳跃的方法,一种是利用"物理"实现跳跃控制,另外一种是使用工具为我们提供的“平台角色”行为,来实现角色的跳跃。 利用物理实现角色的跳跃控制
68 0
|
存储 SQL NoSQL
千万级用户ms级抽奖N名设计方案
大促节零点时,从关注的用户中抽出N个人进行礼品发放,预计全网超过千万用户参加关注抽奖活动,要求: 同一用户不能重复参与 同一用户不允许二次中奖
93 0