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
相关文章
|
6月前
leetcode-1996:游戏中弱角色的数量
leetcode-1996:游戏中弱角色的数量
34 0
|
4月前
|
运维 安全 Serverless
函数计算产品使用问题之要配置 role(服务角色),该如何进行操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
存储 C# 开发工具
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
22.C# 中使用变量记录玩家创建的角色名:实现与游戏角色的互动
58 0
|
6月前
横版游戏中角色的移动控制是如何实现的?
横版游戏中角色的移动控制是如何实现的?
52 0
|
6月前
|
小程序 数据挖掘 BI
如何统计玩家在游戏中的各种操作
如何统计玩家在游戏中的各种操作
64 0
|
6月前
实现横版游戏中角色的跳跃控制是如何实现的?
实现横版游戏中角色的跳跃控制是如何实现的?
54 0
|
人工智能 算法 机器人
用QQ机器人改变群组管理新方式
随着互联网技术的不断发展,人工智能机器人已经逐渐渗透到我们的日常生活之中。近日,一组来自某工作室编写出一款第十代QQ机器人,凭借其强大的功能和高效的管理,引起了广泛关注。
如何实现横版游戏中角色的移动控制
今天分享一下横版游戏中角色的移动控制,在一个 2D 的横版游戏中,对于游戏角色的移动控制,其实只需要考虑水平方向上即可。如果角色可以跳跃的话,才需要去考虑垂直方向上的移动,这篇文章只涉及到水平方向上的角色移动控制。
84 0
如何实现横版游戏中角色的跳跃控制
在写完上一篇[如何实现横版游戏中角色的移动控制]后,有朋友留言:再来个跳跃的。所以,这篇就来了,这篇教程中我将带大家来了解两种实现角色跳跃的方法,一种是利用"物理"实现跳跃控制,另外一种是使用工具为我们提供的“平台角色”行为,来实现角色的跳跃。 利用物理实现角色的跳跃控制
96 0
下一篇
无影云桌面