在大学里选修过数据结构的同学大部分都知道 hash 算法的线性探查法:
假设有一个元素互不相同的正整数数组 $a[1...n]$,我们用以下方法得到数组 $b[0...n-1]$:
初始时 $b[i]$ 都为 $-1$,我们对 $i=1...n$ 依次插入 $a[i]$,假设现在要插入的数是 $x$,首先我们找到 $x \% n$ 这个位置,如果 $b[x\%n]=-1$,则令 $b[x \% n]=x$,之后结束这次插入;否则看 $b[(x+1) \% n]$ 是否等于 $-1$,如果等于则令 $b[(x+1) \% n]=x$,如果不等于,则继续看 $(x+2) \% n$....,直到找到一个位置。
完成所有插入后,我们会得到一个数组 $b$,现在给定这个数组 $b$,你需要求一个字典序最小的 $a[1...n]$