头条第一题java实现

import java.util.ArrayList;
import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
			int n = in.nextInt();
			int m = in.nextInt();
			int c = in.nextInt();
			while(n-->0){
				int r = in.nextInt();
				ArrayList<Integer> tmp = new ArrayList<Integer>();
				if (r==0) {
					tmp.add(0);
				}
				while(r-->0){
					tmp.add(in.nextInt());
				}
				list.add(tmp);
			}
			System.out.println(getILlegal(list, c, m));
		}
	}
	
	private static int getILlegal(ArrayList<ArrayList<Integer>> list, int c, int m){
		int res = 0;
		for(int i=1; i<=c; i++){
			if (getMinDis(list, i)<m) {
				res++;
			}
		}
		return res;
	}
	
	private static int getMinDis(ArrayList<ArrayList<Integer>> list, int c){
		int len = list.size();
		ArrayList<Integer> indexs = new ArrayList<Integer>();
		for(int i=0; i<len; i++){
			if (list.get(i).contains(c)) {
				indexs.add(i);
			}
		}
		if (indexs.size()==1) {
			return len;
		}
		
		int min = len;
		for(int i=1; i<indexs.size(); i++){
			if (indexs.get(i) - indexs.get(i-1) < min) {
				min = indexs.get(i) - indexs.get(i-1);
			}
		}
		if (len - indexs.get(indexs.size()-1) < min) {
			min = len - indexs.get(indexs.size()-1);
		}
		return min;
	}
}


全部评论
答题时,ArrayList的包能引入么,为什么我引入会显示编译错误
点赞 回复 分享
发布于 2017-09-10 21:38

相关推荐

不愿透露姓名的神秘牛友
07-09 12:20
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:33
点赞 评论 收藏
分享
昨天 12:17
已编辑
商丘师范学院 Java
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
无实习如何秋招上岸
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务