private static boolean duplicate(ArrayList<Integer> not2,ArrayList<Integer>res,
			ArrayList<Integer> candidate2,ArrayList<Integer>critnodes) {
//		for (Integer n : not2) {
//			HashSet<Integer> twoleap = cacheTwoleap.get(n);
//			if (twoleap == null) {// 生成两跳集
//				twoleap = new HashSet<Integer>();
//				HashSet<Integer> one = oneLeap.get(n);
//				twoleap.addAll(one);
//				for (Integer o : one) {
//					twoleap.addAll(oneLeap.get(o));
//				}
//				cacheTwoleap.put(n, twoleap);
//			}
//			if (twoleap.containsAll(candidate2))
//				return true;
//		}
//		return false;
		ArrayList<Integer> results = res.size()>candidate2.size()?res:candidate2;
		
		for(Integer n:not2)
		{
			HashSet<Integer> adj = oneLeap.get(n);
			if(!adj.containsAll(critnodes))
				continue;
			int num = 0;
			for(Integer r:results){
				if(!adj.contains(r))
					num++;
			}
			if(num>k_plex-1)
				continue;
			else
				return true;
		}
		return false;
	}