按照攻击值从小到大,防御值从大到小排序保证攻击值相同但防御值不同时的角色在进行比较时不会产生计数!!!(题解如是说 谢谢题解)
java:
class Solution {
public int numberOfWeakCharacters(int[][] properties) {
Arrays.sort(properties,(o1, o2) -> {
return o1[0] == o2[0] ? (o1[1] - o2[1]) : (o2[0] - o1[0]);
});
int max = 0;
int res = 0;
for(int[] p : properties){
if(p[1] < max){
res ++;
}else{
max = p[1];
}
}
return res;
}
}
python3:
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