相关信息:
LeetCode链接:
https://leetcode-cn.com/problems/the-number-of-weak-characters-in-the-game/
代码:
//作者:LeetCodeSolution
import java.util.Arrays;
public class L1996 {
public static void main(String[] args) {
//Test
int[][] properties = { {4, 3},{10, 4}, {1, 2}};
Solution1996 solution1996 = new Solution1996();
int ans = solution1996.numberOfWeakCharacters(properties);
System.out.println(ans);
}
}
class Solution1996 {
public int numberOfWeakCharacters(int[][] properties) {
/*reorder the properties in descending order
* { {4, 3},{10, 4}, {1, 2}} -> {{10, 4}, {4, 3}, {1, 2}};
* the implementation of comparators
* (o1, o2) -> o1[0] == o2[0] ? (o1[1] - o2[1]) : (o2[0] - o1[0])
* */
Arrays.sort(properties, (o1, o2) ->
//returns a negative value when o2 < o1, and a positive value when o2 > o1
o1[0] == o2[0] ? (o1[1] - o2[1]) : (o2[0] - o1[0])
);
int maxDef = 0;
int ans = 0;
for (int[] p : properties) {
if (maxDef > p[1]) {
ans++;
} else {
maxDef = p[1];
}
}
return ans;
}
}