联系我
×

1996. 游戏中弱角色的数量

查看原题

在这里插入图片描述

解题思路

  1. 将数组按照攻击力从低到高进行排序,其中攻击力相同的按照防御力从高到低排序;
  2. 创建一个栈,遍历排序后的数组,将每一项与栈顶的元素进行比较,如果比栈顶的防御力大,则说明栈顶的元素是弱者,count++,并将其弹出栈,继续与下一项比较
  3. 如果防御力小于栈顶元素,则将新的元素加入栈中

代码

/**
 * @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;
};

在这里插入图片描述

posted @ 2022-01-28 10:58  .筱  阅读(27)  评论(0)    收藏  举报