• 头条笔试题2018后端第二批-用户喜好


    头条笔试题2018后端第二批

    标签(空格分隔): 笔试题


    • 描述:为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。

    输入描述:

    输入: 第1行为n代表用户的个数 第2行为n个整数,第i个代表用户标号为i的用户对某类文章的喜好度 第3行为一个正整数q代表查询的组数 第4行到第(3+q)行,每行包含3个整数l,r,k代表一组查询,即标号为l<=i<=r的用户中对这类文章喜好值为k的用户的个数。 数据范围n <= 300000,q<=300000 k是整型

    输出描述:

    输出:一共q行,每行一个整数代表喜好值为k的用户的个数

    输入例子1:

    5
    1 2 3 3 5
    3
    1 2 1
    2 4 5
    3 5 3

    输出例子:

    1
    0
    2

    package 校招.头条.后端第二批.用户喜好;
    
    import java.util.ArrayList;
    import java.util.Scanner;
    
    /**
     * @Author: Lance
     * @Date: 2018/8/20 16:50
     */
    public class Main
    {
        public static void main(String[] args)
        {
    
            Scanner scanner = new Scanner(System.in);
    
            int num = scanner.nextInt();
            int[] hubby = new int[num];
    
            ArrayList<int[]> arrayList = new ArrayList<>();
    
            for (int i = 0; i < num; i++)
            {
                hubby[i] = scanner.nextInt();
            }
    
            //扫描输入查询的组数
            int zuNum = scanner.nextInt();
    
    
            while (zuNum > 0)
            {
                int[] lrk = new int[3];
    
                for (int i = 0; i < 3; i++)
                {
                    lrk[i] = scanner.nextInt();
                }
    
                arrayList.add(lrk);
                zuNum--;
            }
    
            for (int[] temp : arrayList)
            {
                function(hubby,temp);
            }
    
    
        }
    
    
        public static void function(int[] hubby, int[] lrk)
        {
            //定义当前范围内喜欢的人数
            int curNum = 0;
            for (int i = lrk[0] - 1; i <= lrk[1] - 1; i++)
            {
                if (hubby[i] == lrk[2])
                {
                    curNum++;
                }
            }
    
            System.out.println(curNum);
        }
    
    
    }
    
  • 相关阅读:
    编译安装libusb操作流水账
    SM总线控制器没有驱动 关机后又自动重启
    mtd-utils编译安装过程
    STM32开发/烧录/调试环境搭建 基于:Win10+STM32Cube+openocd+cmsis-dap(dap-link)
    EchoServer和EchoClient模型的改进1之多线程
    CountDownLatch分析
    linux-java环境安装以及ssh
    ServerSocket01
    使用SecureCRT工具部署项目
    javaScript笔记01
  • 原文地址:https://www.cnblogs.com/lancexu/p/9507524.html
Copyright © 2020-2023  润新知