🙊本文目录👍
🙊写在前面🙊
今天陪母亲大人出去剪了个头发的,看着我日渐稀疏的脑阔顶,不仅落下了悔恨的泪水,看着镜子中,逐渐秃顶的我,默默地叹了口气,写了这篇令人还掉不了头发的中等题~
题目
返回 弱角色 的数量。
示例
示例1:
输入:properties = [[5,5],[6,3],[3,6]]
输出:0
解释:不存在攻击和防御都严格高于其他角色的角色。
示例2:
输入:properties = [[2,2],[3,3]]
输出:1
解释:第一个角色是弱角色,因为第二个角色的攻击和防御严格大于该角色。
提示
2 <= properties.length <= 10^5
properties[i].length == 2
1 <= attacki, defensei <= 10^5
📝思路📝
当我们拿到这种题时首先第一步要读懂题弱角色的存在条件就是,该角色的所有属性比另一个人的所有属性都要低
,就是弱角色
,那如果两个人攻击力相同时
,他们之间就不会产生弱角色
,那当前如果攻击力相同时
防御力越拉胯的人是不是越容易被破防
,被比他攻击力高一点的兄弟给干死成弱角色
呢,思路有了,那咱们就来看看如何进行解决。
⭐代码实现⭐
class Solution {
public int numberOfWeakCharacters(int[][] properties) {
//用于记录角色个数 n
int n = properties.length;
//将角色能力进行排序 如果 角色之间的攻击力相同 则将 防御力较低的排到前面 反之 攻击力按照降序排序
Arrays.sort(properties,(role1,role2)->role1[0]==role2[0]? role1[1] - role2[1] : role2[0]-role1[0]);
//用于记录当前 弱角色 人数
int weakRoleCount = 0;
//记录当前防御力能破防的最大值
int defenseMax = Integer.MIN_VALUE;
for (int i = 0 ; i< n;i++){
//如果能破防则弱角色+1
if (defenseMax > properties[i][1]){
weakRoleCount++;
}
//记录最大破防值
defenseMax = Math.max(defenseMax,properties[i][1]);
}
return weakRoleCount;
}
}
运行结果
🙊写在最后🙊
2022-1-28 今天小付打卡了哦~
美好的日出 美好的山河
都因有你存在 而璀璨 耀眼