![[编程题] 用户喜好--字节跳动--(超时) [编程题] 用户喜好--字节跳动--(超时)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY1NS9iOWE4ZGVkYzE2YmExMzQ0ZjA1NjIzNTU1NDdkMTMxZi5wbmc=)
![[编程题] 用户喜好--字节跳动--(超时) [编程题] 用户喜好--字节跳动--(超时)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzU5MC8yZjE5ZTllYmE3MTYwMTU3NWUzZjE2MjAxYjY2YmRhZS5wbmc=)
import java.util.Scanner;
/**
*
*/
/***
* @author 18071
* @Date 2019年3月15日
* 功能:为了不断优化推荐效果,
* 今日头条每天要存储和处理海量数据。
* 假设有这样一种场景:
* 我们对用户按照它们的注册时间先后来标号,'
* 对于一类文章,每个用户都有不同的喜好值,
* 我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,
* 有多少用户对这类文章喜好值为k。
* 因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。
***/
public class test {
public static void main(String args[]) {
Scanner s =new Scanner(System.in);
int num ;
num=s.nextInt();
System.out.println(num);
s.nextLine();
String array=s.nextLine();
int [] tar=new int [5];
for(int i=0;i<num ;i++) {
String [] arr =array.split(" ");
tar[i]=Integer.parseInt(arr[i]);
System.out.println(tar[i]);
}
int group;
group=Integer.parseInt(s.nextLine());
g[] gg=new g[group];
for(int i=0;i<group ;i++) {
String em =s.nextLine();
String [] a =em.split(" ");
gg[i]=new g(Integer.parseInt(a[0]),Integer.parseInt(a[1]),Integer.parseInt(a[2]));
System.out.println(gg[i]);
}
//喜好数组 tar
//输出数组 gg[]
for(int i=0;i<gg.length;i++) {
int st= gg[i].start;
int en =gg[i].end;
for(int j=st-1;j<=en-1;j++)
{
if(gg[i].index==tar[j])
{
gg[i].count++;
}
}
System.out.println("i is "+ i+"count is "+gg[i].count);
}
}
}
class g{
int start;
int end;
int index;
int count=0;
g(int start,
int end,
int index){
this.start=start;
this.end=end;
this.index=index;
}
public String toString() {
return "start ="+start+
" end ="+end+
" index ="+index;
}
}
![[编程题] 用户喜好--字节跳动--(超时) [编程题] 用户喜好--字节跳动--(超时)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYwNS84MDQyODIwMDcyYTgxM2RkNzcxMjY5M2IzYmYwNTA5NS5wbmc=)