#114. A 数组在 B 数组中的首地址

A 数组在 B 数组中的首地址

Description

给你两个整数数组 $A$ 和 $B$,$A$ 数组长度为 $n$,$B$ 数组长度为 $m$,若 $B$ 中存在某个子数组等于数组 $A$,输出这些子数组中起始位置下标最小的下标值,若这样的子数组不存在则输出 $-1$。数组下标从 $0$ 开始

定义两数组 $a,b$ 相等,当且仅当 $a.size()=b.size()$ 且 $a[0]=b[0],a[1]=b[1]...a[k]=b[k]...$。

子数组是指数组中连续的一段数据。如在数组[$2,3,5$]中,子数组有[$2,3,5$],[$2,3$],[$3,5$],[$2$],[$3$],[$5$]

Input Format

有 $T(0<T<=1000)$ 组样例。

第一行输入一个整数 $T$。

每组样例描述如下:

第一行输入两个正整数 $n(1<=n<=500)$和 $m(1<=m<=3*10^3)$。

接下来 $2$ 行,第一行输入 $n$ 个数,描述数组 $A$,第二行输入 $m$ 个数,描述数组 $B$,其中 $0<=A[i],B[i]<100$。

Output Format

输出 $T$ 行。

每行输出对应样例的答案,即与 $A$ 相等的 $B$ 的子数组的最小的起始位置(下标),若这样的子数组不存在则输出 $-1$

1
4 10
1 23 2 4
1 2 3 8 1 23 2 4 9 3 
4

Source

1816 Online Judge 10.100.0.232