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
相关文章
|
8月前
leetcode-1996:游戏中弱角色的数量
leetcode-1996:游戏中弱角色的数量
40 0
|
6月前
|
运维 安全 Serverless
函数计算产品使用问题之要配置 role(服务角色),该如何进行操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
8月前
|
存储 C# 开发工具
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
84 0
|
8月前
横版游戏中角色的移动控制是如何实现的?
横版游戏中角色的移动控制是如何实现的?
64 0
|
8月前
如何实现游戏角色的“呼啦圈”技能?
如何实现游戏角色的“呼啦圈”技能?
63 0
如何实现横版游戏中角色的移动控制
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。
96 0
|
缓存 NoSQL Java
用户和角色的缓存|学习笔记
快速学习用户和角色的缓存
145 0
用户和角色的缓存|学习笔记
|
Java 开发者 Spring
给角色分配菜单的需求分析 | 学习笔记
快速学习给角色分配菜单的需求分析
给角色分配菜单的需求分析 | 学习笔记
|
XML 数据格式
有关 用户&角色 分配的问题
有关 用户&角色 分配的问题
141 0