当前位置: 首页 > news >正文

leetcode 1996. 游戏中弱角色的数量(排序的魅力)

题目
题意: 给定n个人的攻击力和防御力,对于一个人来说,如果存在某个人的攻击力和防御力都比他高,那么称这个人为弱角色。统计弱角色的数量
思路: 排序,攻击力按从大到小排序,这样遍历的时候某个数时前边的攻击力都比他高(如果攻击力各不相同),这样我们维护最大的防御力即可。难处理的是攻击力相同怎么办,有可能维护的最大防御力是相同攻击力的人,这样就统计错误。可以对于攻击力相同的,按照防御力从小到大排序,这样可以保证维护的最大防御力的人的攻击力是严格高于当前人的攻击力的。因为攻击力相同的人是放在一起的,然后防御力从小到大可以保证当前这个人前边与他攻击力相同的人的防御力比他低,这样就保证了维护的最大防御力的人的攻击力是严格高于当前人的攻击力的。
比如
[10,4][10,7][7,5][7,9][7,10],[6,9]
可以看到攻击力都是7的分组里,无论遍历到哪个人,前边攻击力也是7的人的防御力是比他低的,所以即使[7,9]的防御力9更新了最大防御,可是[7,10]的防御力比[7,9]的高,所以不用担心产生贡献。所以不会出现同是攻击力为7的人之间对答案产生贡献。
代码:

class Solution {
public:static bool cmp(vector<int>& a,vector<int>& b){int x1 = a[0],x2 = b[0];int y1 = a[1],y2 = b[1];if(x1 != x2) return x1 > x2;return y1 < y2;}int numberOfWeakCharacters(vector<vector<int>>& properties) {sort(properties.begin(),properties.end(),cmp);int mxy = 0;int ans = 0;for(int i=0;i<properties.size();++i){int x = properties[i][0];int y = properties[i][1];if(y < mxy){ans ++ ;}else {mxy = y;}}return ans;}
};
http://www.lryc.cn/news/136056.html

相关文章:

  • 从头到尾说一次 Spring 事务管理(器) | 京东云技术团队
  • php 系列题目,包含查看后端源代码
  • 令牌桶C语言代码实现
  • Mybatis 建立依赖失败:报错Dependency ‘mysql:mysql-connector-java:8.0.28‘ not found
  • 多线程+隧道代理:提升爬虫速度
  • 使用@Configuration和@Bean给spring容器中注入组件
  • 信号波形解读
  • Centos 解决 XXX不在 sudoers 文件中。此事将被报告。的错误
  • 雪花算法和uuid的区别
  • docker之DockerFile与网络
  • 知识蒸馏开山之作(部分解读)—Distilling the Knowledge in a Neural Network
  • centos 7 安装 docker-compose curl 设置代理
  • 3D姿态相关的损失函数
  • ChatGPT取代人类仍然是空想?有没有一种可能是AI在迷惑人类
  • 基于swing的旅游管理系统java jsp旅行团信息mysql源代码
  • Windows wsl2支持systemd
  • NLP - 如何解决ModuleNotFoundError: No module named ‘jieba‘的问题
  • Windows10上VS2022单步调试FFmpeg 4.2源码
  • 【tkinter 专栏】菜单组件
  • 【LeetCode-经典面试150题-day10】
  • Transformer在医学影像中的应用综述-分类
  • 新服务器基本环境下载conda + docker + docker-compose + git
  • Matlab论文插图绘制模板第108期—特征渲染的标签散点图
  • 设计模式之中介者模式(Mediator)的C++实现
  • css弹性布局的方式
  • 阿里云源 Python、npm、git、goproxy
  • 微服务架构1.0
  • iOS开发Swift-基础部分
  • 【LeetCode-经典面试150题-day11】
  • 深度学习入门(三):卷积神经网络(CNN)