1996_游戏中弱角色的数量
难度:中等
题目
你正在参加一个多角色游戏,每个角色都有两个主要属性:攻击 和 防御 。给你一个二维整数数组 properties ,其中 properties[i] = [attacki, defensei] 表示游戏中第 i 个角色的属性。
如果存在一个其他角色的攻击和防御等级 都严格高于 该角色的攻击和防御等级,则认为该角色为 弱角色 。更正式地,如果认为角色 i 弱于 存在的另一个角色 j ,那么 attackj > attacki 且 defensej > defensei 。
返回 弱角色 的数量。
示例
示例一:
输入:properties = [[5,5],[6,3],[3,6]]
输出:0
解释:不存在攻击和防御都严格高于其他角色的角色。
示例二:
输入:properties = [[2,2],[3,3]]
输出:1
解释:第一个角色是弱角色,因为第二个角色的攻击和防御严格大于该角色。
示例三:
输入:properties = [[1,5],[10,4],[4,3]]
输出:1
解释:第三个角色是弱角色,因为第二个角色的攻击和防御严格大于该角色。
提示
2 <= properties.length <= 105properties[i].length == 21 <= attacki, defensei <= 105
解题
因为判定弱角色的条件为有人攻击力和防御力都比它高
所以按照攻击力从大到小排序,然后开始遍历,遍历过程中更新最高防御力。只要前面有比它防御力高的,则它是弱角色。
1 | |
关于 Java 的数组排序
Arrarys.sort() 是用于给数组排序的,默认的情况下,是顺序排序,即从小到大
在自定义比较器,重写compare方法时,return正值,返回后一个元素;return负值,返回前一个元素;return 0,两个元素顺序不变。
1 | |