头条第一题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

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务