华为OD机试统一考试D卷C卷 - 结队编程

题目描述

某部门计划通过结队编程来进行项目开发,已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程,结队分组规则如下:

从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分贝为 level[i],level[j],level[k],

结队小组满足 level[i] < level[j] < level[k] 或者 level[i] > level[j] > level[k],

其中 0 ≤ i < j < k < n。

请你按上述条件计算可能组合的小组数量。同一员工可以参加多个小组。

输入描述

第一行输入:员工总数 n

第二行输入:按序号依次排列的员工的职级 level,中间用空格隔开

备注:

  • 1 ≤ n ≤ 6000
  • 1 ≤ level[i] ≤ 10^5

输出描述

可能结队的小组数量

用例


输入 4 1 2 3 4
输出 4
说明 可能结队成的组合(1,2,3)、(1,2,4)、(1,3,4)、(2,3,4)

输入 3 5 4 7
输出 0
说明 根据结队条件,我们无法为该部门组建小组

Java

import java.util.Scanner;  

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); 

        int n = Integer.parseInt(sc.nextLine()); //  员工总数
        int[] levels = new int[n]; //  每个员工的职级
        String[] inputLevels = sc.nextLine().split(" "); //  每个员工职级的字符串数组
        for (int i = 0; i < n; i++) { // 遍历字符串数组
            levels[i] = Integer.parseInt(inputLevels[i]); // 将每个员工的职级字符串转换为整数,并存储到levels数组中
        }

        System.out.println(countTeams(n, levels)); // 调用countTeams方法计算并输出可以结成的队伍数量
    }

    public static long cou

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机试E卷D卷刷题日记 文章被收录于专栏

机试刷题记录

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
有没有经济学家能告诉我,三年后中国的就业市场会不会好转?我在校招中拿到了一份9k+的offer,还是行业的龙头企业,心里其实不想再考研了。但又总是担心,万一读研后薪资更高,我会不会后悔呢?
Fyhyuky:三年后肯定不会啊,只会比现在更烂,你自己看看现在有没有什么增长点,电车都是国家补贴兜底才发展出来的,已经比较违背市场自然规律了,互联网更不用说了,国家强力打压,传统制造业转型失败,现在苟延残喘中
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务