LeetCode 1395. 统计作战单位数(蛮力法)

1. 题目

n 名士兵站成一排。每个士兵都有一个 独一无二 的评分 rating 。

每 3 个士兵可以组成一个作战单位,分组规则如下:

  • 从队伍中选出下标分别为 i、j、k 的 3 名士兵,他们的评分分别为 rating[i]、rating[j]、rating[k]
  • 作战单位需满足: rating[i] < rating[j] < rating[k] 或者 rating[i] > rating[j] > rating[k] ,其中 0 <= i < j < k < n

请你返回按上述条件可以组建的作战单位数量。每个士兵都可以是多个作战单位的一部分。

示例 1:
输入:rating = [2,5,3,4,1]
输出:3
解释:我们可以组建三个作战单位 (2,3,4)(5,4,1)(5,3,1) 。示例 2:
输入:rating = [2,1,3]
输出:0
解释:根据题目条件,我们无法组建作战单位。示例 3:
输入:rating = [1,2,3,4]
输出:4提示:
n == rating.length
1 <= n <= 200
1 <= rating[i] <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-number-of-teams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 蛮力解

  • 数据量小,直接3层循环,O(n3)O(n^3)O(n3) 时间复杂度
class Solution {
public:int numTeams(vector<int>& rating) {int i, j, k, sum = 0, n = rating.size();for(i = 0; i < n-2; ++i)for(j = i+1; j < n-1; ++j)for(k = j+1; k < n; ++k)if((rating[i] < rating[j] && rating[j] < rating[k])||(rating[i] > rating[j] && rating[j] > rating[k]))sum++;return sum;}
};

140 ms 7.6 MB

2.2 优化蛮力

  • 找到每个位置的左右比其大和小的个数,O(n2)O(n^2)O(n2) 时间复杂度
  • sum += lsmall*rLarge + lLarge*rsmall
class Solution {
public:int numTeams(vector<int>& rating) {int i, j, lsmall, lLarge, rsmall, rLarge, sum = 0, n = rating.size();for(i = 1; i < n-1; ++i){lsmall = lLarge = rsmall = rLarge = 0;for(j = 0; j < i; ++j){if(rating[j] < rating[i])lsmall++;if(rating[j] > rating[i])lLarge++;}for(j = i+1; j < n; ++j){if(rating[j] < rating[i])rsmall++;if(rating[j] > rating[i])rLarge++;}sum += lsmall*rLarge + lLarge*rsmall;}return sum;}
};

8 ms 7.3 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

站在2006的边缘

站在2006的边缘——代腾飞 2006年12月31日 于成都时光飞逝&#xff0c;中华元年2006年转眼来到了尽头明日清晨&#xff0c;冉冉升起的阳光将迎接新的一年的到来又将重新开始新的日月轮回站在这瞬间即逝的2006的边缘心潮难以宁静,我思索着、寻求着总想写下几句&#xff0c;也该…

谷歌Flan-T5诞生!1800种语言任务超大规模微调

编辑 | 泽南、小舟来源 | 机器之心不增加算力需求&#xff0c;谷歌总结的指令微调方法能让 8000 万到 5400 亿参数的模型都显著提升性能。人工智能一个重要的目标是开发泛化能力强的模型。在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;预训练语言模型在这方面取…

fft的c语言和matlab对比_傅里叶级数(FS)、傅里叶变换(FT)快速傅里叶变换(FFT)及量子傅里叶变换(QFT)之间推导关系...

1 引言傅里叶级数 (Fourier Series, FS) 是《高等数学》中遇到的一个重要的级数&#xff0c;它可以将任意一个满足狄利克雷条件的函数为一系列三角级数的和。最早由法国数学家傅里叶在研究偏微分方程的边值问题时提出&#xff0c;极大地推动了偏微分方程理论的发展。根据欧拉公…

OraOLEDbpus.dll找不到指定的模块的解决办法

OraOLEDbpus.dll找不到指定的模块的解决办法 使用Oracle Provider for OLE DB 进行数据库连接的时候&#xff0c;报错:&#xff1a;OraOLEDbpus.dll 找不到指定的模块在oracle的安装目录下却能找到OraOLEDbpus.dll&#xff0c;应该是其未能找到该路径&#xff0c;打开系统的环境…

LeetCode 1396. 设计地铁系统(map/unordered_map)

1. 题目 请你实现一个类 UndergroundSystem &#xff0c;它支持以下 3 种方法&#xff1a; checkIn(int id, string stationName, int t) 编号为 id 的乘客在 t 时刻进入地铁站 stationName 。 一个乘客在同一时间只能在一个地铁站进入或者离开。 checkOut(int id, string st…

python中object是什么数据类型_自学Python2.1-基本数据类型-字符串str(object) 上

自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。 创建字符串很简单&#xff0c;只要为变量分配一个值即可。例如&#xff1a; var1 Hello World! var2 "Python Runoob" 1. Python…

.NET下使用DataAdapter保存数据时,如何生成command语句及使用事务

.NET下使用DataAdapter保存数据时&#xff0c;如何生成command语句及使用事务 在.NET下&#xff0c;运用DATASET对数据进行批量更新时&#xff0c;需要与 DataAdapter配合使用。DataAdapter数据适配器的作用是生成数据更新时所需的insert,delete,update等语句&#xff0c;这些语…

文档智能SOTA被刷爆,DocVQA榜单首次突破90大关

文档智能&#xff08;DI, Document Intelligence&#xff09;主要指对于网页、数字文档或扫描文档所包含的文本以及丰富的排版格式等信息&#xff0c;通过人工智能技术进行理解、分类、提取以及信息归纳的过程。文档智能技术广泛应用于金融、保险、能源、物流、医疗等行业&…

react 遍历对象_React 源码系列 | React Children 详解

本文基于 React V16.8.6&#xff0c;本文代码地址测试代码 源码讲解React 中一个元素可能有 0 个、1 个或者多个直接子元素&#xff0c;React 导出的 Children 中包含 5 个处理子元素的方法。map 类似 array.mapforEach 类似 array.forEachcount 类似 array.lengthtoArrayonlyR…

程序员面试金典 - 面试题 16.19. 水域大小(BFS/DFS)

1. 题目 你有一个用于表示一片土地的整数矩阵 land&#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。 若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。 池塘的大小是指相连接的水域的个数。 编写一个方法来计算矩阵中所有池塘的大小&#xff0c;返回值需要从…

自定义组件--创建mxml组件

创建简单的mxml组件 Example components/CountryComboBox.mxml <?xml version"1.0" encoding"utf-8"?> <mx:ComboBox xmlns:mx"http://www.adobe.com/2006/mxml"> <mx:dataProvider> <mx:String>United States</mx…

19位算法工程师总结:机器学习项目成功落地的三条秘诀

文 | 天于刀刀又是一年金九银十&#xff0c;前几天小编刀刀在一次电话面试过程中被HR 的一个问题问得差点闪了腰。当时情况是这样的&#xff0c;在流利地介绍完之前的几个项目后&#xff0c;招聘小姐姐打断了我后续的&#xff08;忽悠&#xff09;节奏&#xff0c;郑重其事地反…

nodejs 获取cpu核心数量_用 NodeJS 充分利用多核 CPU 的资源[每日前端夜话0xCB]

每日前端夜话0xCA每日前端夜话&#xff0c;陪你聊前端。每天晚上18:00准时推送。正文共&#xff1a;1558 字预计阅读时间&#xff1a;7 分钟作者&#xff1a;Nick Major翻译&#xff1a;疯狂的技术宅来源&#xff1a;coderrocketfuel介绍单个 Node.js 程序的实例仅在一个线程上…

程序员面试金典 - 面试题 16.20. T9键盘(数组)

1. 题目 在老式手机上&#xff0c;用户通过数字键盘输入&#xff0c;手机将提供与这些数字相匹配的单词列表。 每个数字映射到0至4个字母。给定一个数字序列&#xff0c;实现一个算法来返回匹配单词的列表。 你会得到一张含有有效单词的列表。映射如下图所示&#xff1a; 示…

胃部不适,原来好辛苦!

这几天胃部都感觉不舒服&#xff0c;那种感觉很难形容&#xff0c;总之就非常辛苦&#xff0c;无胃口&#xff0c;浑身都不舒服&#xff0c;可能是之前几天早餐没吃饱&#xff0c;有几天很晚才入睡空着肚子的缘故吧&#xff0c;原来胃部不适是如此辛苦的&#xff0c;怕怕&#…

重磅!顶级一区期刊官宣:明年起将不再拒稿!

源 | 青塔学术、量子位等颠覆科学出版的“游戏规则”?10月20日&#xff0c;国际著名生物学综合期刊eLife官方宣布了一个重大决定&#xff1a;从2023年1月31日起&#xff0c;所有经过同行评审的文章&#xff0c;eLife都不会作出接受/拒绝的决定&#xff0c;而是直接发布在其网站…

EM(期望极大化)算法及其推广

文章目录1. EM算法2. EM算法收敛3. EM算法应用4. EM算法的推广5. sklearn.mixture.GaussianMixture概率模型有时既有观测变量&#xff08;observable variable&#xff09;&#xff0c;又有隐变量或潜在变量&#xff08;latent variable&#xff09;如果概率模型的变量都是观测…

GridView 中添加删除确认提示框

在GridView中我们可以直接添加一个CommandField删除列来删除某行信息。但为了避免误操作引起的误删除&#xff0c;在删除操作者让操作者再确认下&#xff0c;完后再进行删除。 首先我们给我们的GridView 添加一个模板列&#xff0c;如下&#xff1a; <asp:TemplateField He…

终于有人喊出来:论文一稿多投是作者的合法权利!

文 | 马建平&#xff0c;三峡大学学报编辑源 | 现代出版一稿多投目前已演变为许多作者一种常态化的投稿方式。针对一稿多投现象&#xff0c;舆论似乎是一边倒的反对和谴责之声&#xff0c;认为它浪费了极为稀缺的出版资源&#xff0c;扰乱了报刊社正常的出版秩序&#xff0c;是…