标签:-- 4行 int 描述 print UNC 扫描 lis scanner
标签(空格分隔): 笔试题
输入描述:
输入: 第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);
}
}
标签:-- 4行 int 描述 print UNC 扫描 lis scanner
原文地址:https://www.cnblogs.com/lancexu/p/9507524.html