[编程题] 用户喜好--字节跳动--(超时)

在这里插入图片描述
在这里插入图片描述

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;
				
	}
}

在这里插入图片描述

发布了68 篇原创文章 · 获赞 3 · 访问量 5234

猜你喜欢

转载自blog.csdn.net/Hqxcsdn/article/details/88586102