classSolution:defnumberOfWeakCharacters(self, properties: List[List[int]])->int:"""
Time Complexity: O(n * log(n))
Space Complexity: O(1)
Where:
- n: size of properties.
"""
n =len(properties)# Edge casesif n <2:return0# Sort by (attack, defense) tuple in ASC order
properties.sort(key=lambda prop:(prop[0], prop[1]))# Select the strongest pair for the remaining question space
max_prop = properties[-1]
ans =0
next_max_prop =Nonefor idx inrange(n -2,-1,-1):
cur_prop = properties[idx]if cur_prop[0]== max_prop[0]:continueif next_max_prop isNone:
next_max_prop = cur_prop
# then we have: cur_prop[0] < max_prop[0]if cur_prop[1]< max_prop[1]:
ans +=1# Update the strongest pair for the remaining question spaceif idx >0and properties[idx -1][0]!= cur_prop[0]:if next_max_prop[1]> max_prop[1]:
max_prop = next_max_prop
next_max_prop =Nonereturn ans
LeetCode #1996. The Number of Weak Characters in the Game
[LeetCode]1996. The Number of Weak Characters in the Gameclass Solution: def numberOfWeakCharacters(self, properties: List[List[int]]) -> int: """ Time Complexity: O(n * log(n)) Space Complexity: O(1) Where: