1996. 游戏中弱角色的数量 递增栈

解题思路
- 将数组按照攻击力从低到高进行排序,其中攻击力相同的按照防御力从高到低排序;
- 创建一个栈,遍历排序后的数组,将每一项与栈顶的元素进行比较,如果比栈顶的防御力大,则说明栈顶的元素是弱者,count++,并将其弹出栈,继续与下一项比较
- 如果防御力小于栈顶元素,则将新的元素加入栈中
代码
/**
* @param {number[][]} properties
* @return {number}
*/
var numberOfWeakCharacters = function(properties) {
// 按照攻击力高低排序
properties.sort((a,b)=>a[0]===b[0]?b[1] - a[1] : a[0] - b[0]);
let count = 0;
let arr = [];
for (const propertie of properties){
while (arr.length && arr[arr.length - 1] < propertie[1]){
arr.pop();
count++;
}
arr.push(propertie[1])
}
return count;
};
