LeetCode 1996 游戏中弱角色的数量[自定义排序] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1996 游戏中弱角色的数量[自定义排序] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
既然是两个同时满足的条件,那么不如先满足一个,另一个慢慢找即可,自定义排序,首先按照攻击力降序排列,如果相等,则按照防御力升序排列,这样的话就不会造成攻击力相同防御力较低的算作弱方的存在。最后遍历排序好的数组,不断更新最高防御力,并把防御力低的算作弱方(防御力低,攻击力肯定低),代码如下:

bool cmp(const vector<int>& p1, const vector<int>& p2) 
    if(p1[0] == p2[0]) 
        return p2[1] > p1[1];
    
    return p1[0] > p2[0];

class Solution 
public:
    int numberOfWeakCharacters(vector<vector<int>>& properties) 
        int n = properties.size();
        sort(properties.begin(), properties.end(), cmp);
        int ans = 0;
        int maxDefence = -1;
        for(int i = 0; i < n; i ++) 
            if(maxDefence > properties[i][1]) 
                ans ++;
            
            maxDefence = max(maxDefence, properties[i][1]);
        
        return ans;
    
;

以上是关于LeetCode 1996 游戏中弱角色的数量[自定义排序] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—5864. 游戏中弱角色的数量( 数组)—day29

leetcode每日一题-游戏中弱角色的数量

Leetcode——根据身高重建队列 / 游戏中弱角色的数量 (排序,compare)

LeetCode:Database 48.游戏玩法分析 V

具有不同角色的实时多人 Google Play 游戏

游戏AI自定义--行为树+xlua+json