public static boolean isSubset(int[]A, int[]B) {
		if (A.length<B.length) return false;
		
		Map<Integer, Integer> map=new HashMap<>();
		int ct=0;
		for (int i=0,j=0,m=A.length,n=B.length;i<m||j<n;++i,++j) {
			Integer va=map.get(A[i]);
			if (va==null) {
				map.put(A[i],1);
				++ct;
			} else {
				map.put(A[i], va+1); 
				if (va+1>0)
					++ct;
				}			
			if (j<n) {
				Integer vb=map.get(B[j]);
				if (vb==null) {
					map.put(B[j], -1);
					--ct;
				} else {
					map.put(B[j], vb-1); 
					if (vb-1<=0)
						--ct;
				}
			}
		}
		return ct==0;		
	}