计算C ++中的团队数量
假设有n名士兵排成一行。在此,为每个士兵分配一个唯一的评分值。我们必须使用以下规则组成一个由3名士兵组成的团队-
选择3个具有索引(i,j,k)的士兵,以使等级(rating[i],等级[j],等级[k])。
如果-(rating[i]<等级[j]<等级[k])或(rating[i]>等级[j]>等级[k]),则小组将有效。
我们必须找到可以组建的团队数量。(士兵可以是多个团队的一部分)。
因此,如果输入像等级=[2,5,3,4,1],那么输出将是3,因为我们可以组成三个团队,例如(2,3,4),(5,4,1),(5,3,1)。
为了解决这个问题,我们将遵循以下步骤-
ret:=0,n:=v的大小
对于初始化i:=0,当i<n时,更新(将i增加1),执行-
对于初始化k:=j+1,当k<n时,更新(将k增加1),执行-
(增加ret1)
(增加ret1)
如果v[i]<v[j]和v[j]<v[k],则-
否则,当v[i]>v[j]和v[j]>v[k]时,则-
对于初始化j:=i+1,当j<n时,更新(将j增加1),-
返回ret
例
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int numTeams(vector<int>& v) {
int ret = 0;
int n = v.size();
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
if (v[i] < v[j] && v[j] < v[k])
ret++;
else if (v[i] > v[j] && v[j] > v[k])
ret++;
}
}
}
return ret;
}
};
main(){
Solution ob;
vector<int> v = {2,5,3,4,1};
cout << (ob.numTeams(v));
}输入值
{2,5,3,4,1}输出结果
3
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短