当前位置:网站首页>LeetCode每日一题(1996. The Number of Weak Characters in the Game)
LeetCode每日一题(1996. The Number of Weak Characters in the Game)
2022-07-03 09:01:00 【wangjun861205】
You are playing a game that contains multiple characters, and each of the characters has two main properties: attack and defense. You are given a 2D integer array properties where properties[i] = [attacki, defensei] represents the properties of the ith character in the game.
A character is said to be weak if any other character has both attack and defense levels strictly greater than this character’s attack and defense levels. More formally, a character i is said to be weak if there exists another character j where attackj > attacki and defensej > defensei.
Return the number of weak characters.
Example 1:
Input: properties = [[5,5],[6,3],[3,6]]
Output: 0
Explanation: No character has strictly greater attack and defense than the other.
Example 2:
Input: properties = [[2,2],[3,3]]
Output: 1
Explanation: The first character is weak because the second character has a strictly greater attack and defense.
Example 3:
Input: properties = [[1,5],[10,4],[4,3]]
Output: 1
Explanation: The third character is weak because the second character has a strictly greater attack and defense.
Constraints:
- 2 <= properties.length <= 105
- properties[i].length == 2
- 1 <= attacki, defensei <= 105
- 根据 attack 排序, 如果 attack 相同则按 defense 的倒序排序
- 反向遍历,时刻记录遍历过的最大的 defense 值, 如果 properties[i][1] < max(defense)则认为 properties[i]弱于前面便利过的某个 property
之所以 attack 相同时按 defense 的倒序排序, 是因为题目要求是 attack 和 defense 都严格小于才能算弱, 我们这样排序可以保证 attack 是不严格递增, 按 defense 倒序排序可以保证在遍历的时候可以避免误把 attack 相同的情况计入答案中
impl Solution {
pub fn number_of_weak_characters(mut properties: Vec<Vec<i32>>) -> i32 {
properties.sort_by(|v1, v2| {
if v1[0] == v2[0] {
return v2[1].cmp(&v1[1]);
}
v1[0].cmp(&v2[0])
});
let mut max = properties.last().unwrap()[1];
let mut ans = 0;
for v in properties.into_iter().rev().skip(1) {
if v[1] < max {
ans += 1;
}
max = max.max(v[1]);
}
ans
}
}
边栏推荐
- Crawler career from scratch (II): crawl the photos of my little sister ② (the website has been disabled)
- Database execution error: SQL_ mode only_ full_ group_ by:
- [kotlin puzzle] what happens if you overload an arithmetic operator in the kotlin class and declare the operator as an extension function?
- 【毕业季|进击的技术er】又到一年毕业季,一毕业就转行,从动物科学到程序员,10年程序员有话说
- Utilisation de hudi dans idea
- Instant messaging IM is the countercurrent of the progress of the times? See what jnpf says
- Flink学习笔记(八)多流转换
- Hudi learning notes (III) analysis of core concepts
- Windows安装Redis详细步骤
- Powerdesign reverse wizard such as SQL and generates name and comment
猜你喜欢
Flink学习笔记(八)多流转换
Using Hudi in idea
Sword finger offer II 091 Paint the house
[point cloud processing paper crazy reading classic version 8] - o-cnn: octree based revolutionary neural networks for 3D shape analysis
CATIA automation object architecture - detailed explanation of application objects (III) systemservice
Hudi 快速体验使用(含操作详细步骤及截图)
2022-2-13 learn the imitation Niuke project - Project debugging skills
Hudi学习笔记(三) 核心概念剖析
Install third-party libraries such as Jieba under Anaconda pytorch
2022-2-13 learning the imitation Niuke project - home page of the development community
随机推荐
With low code prospect, jnpf is flexible and easy to use, and uses intelligence to define a new office mode
C language programming specification
WARNING: You are using pip version 21.3.1; however, version 22.0.3 is available. Prompt to upgrade pip
Django operates Excel files through openpyxl to import data into the database in batches.
[point cloud processing paper crazy reading classic version 8] - o-cnn: octree based revolutionary neural networks for 3D shape analysis
Go language - JSON processing
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
STM32F103 can learning record
LeetCode 535. Encryption and decryption of tinyurl
Construction of simple database learning environment
307. Range Sum Query - Mutable
Digital management medium + low code, jnpf opens a new engine for enterprise digital transformation
LeetCode每日一题(516. Longest Palindromic Subsequence)
2022-2-13 learn the imitation Niuke project - Project debugging skills
Overview of database system
Flink-CDC实践(含实操步骤与截图)
The server denied password root remote connection access
NPM install installation dependency package error reporting solution
Uc/os self-study from 0