思路:排序
先按照攻击力大的进行排序,如果攻击力相同的按照防御力小的进行排序
遍历的过程中需要维护一个相同攻击或者说上一个攻击力大的角色的最大防御值
如果攻击力和防御力都小于上一个结果,添加到结果集中
class Solution {
public int numberOfWeakCharacters(int[][] properties) {
Arrays.sort(properties, (a, b) -> a[0] == b[0] ? a[1] - b[1] : b[0] - a[0]);
int maxDef = 0;
int ans = 0;
for (int[] property : properties) {
if (property[1] < maxDef){
ans++;
} else {
maxDef = property[1];
}
}
return ans;
}
}

本文介绍了一种通过排序来找出游戏中较弱角色的算法。首先按照攻击力从大到小排序,若攻击力相同则按防御力从小到大排序。遍历过程中记录最大防御值,当遇到攻击力和防御力均小于已记录最大值的角色时,则将其计入结果集。
2523

被折叠的 条评论
为什么被折叠?



