zoukankan      html  css  js  c++  java
  • LeetCode 1395. 统计作战单位数

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

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

    • 从队伍中选出下标分别为 ijk 的 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

    思路:根据题目要求,一个作战单位是(i,j,k)组成,其中,i<j<k,然后只需判断三名士兵的评分是否递增或者递减:

    rating[i]<rating[j]<rating[k]

    或者

    rating[i]>rating[j]>rating[k]

    将其转换成代码如下:

     1 int numTeams(int* rating, int ratingSize){
     2     int i,j,k,cnt=0;
     3     for(i=0;i<ratingSize;i++){
     4         for(j=i+1;j<ratingSize;j++){
     5             for(k=j+1;k<ratingSize;k++){
     6                 if((rating[i]<rating[j]&&rating[j]<rating[k])||(rating[i]>rating[j]&&rating[j]>rating[k])){
     7                     cnt++;
     8                 }
     9             }
    10         }
    11     }
    12     return cnt;
    13 }
  • 相关阅读:
    PHP Mysql 根据一个给定经纬度的点,进行附近地点查询–算法 转载
    使用正则表达式匹配JS函数代码
    随便写点
    test
    Dat
    数据格式
    recod
    扫描
    转载 ASP.NET MVC中使用ASP.NET Identity
    制作32位和64位整合的安装包
  • 原文地址:https://www.cnblogs.com/woju/p/12637463.html
Copyright © 2011-2022 走看看