在一个简单的哈希表实现中,对于给定的哈希函数 f(x)=x%n,有一长度为 n 的数组用于存储 x≥0 的值。
当需要向哈希表插入一个值 x 时,从数组的下标 f(x) 开始,向右循环移动,找到第一个未存储该数的位置,写入 x。若哈希表已满或 x 已存在于表中,则不再插入 x。
给定 n 个整数 ai (ai≥−1) 表示哈希表数组中存储的元素,−1 表示当前位置未写入数据。
请按插入哈希表的顺序输出原序列(假设插入过程中不存在相同的数字),如果有多个满足条件的序列,输出字典序最小的。
5
-1 1 -1 3 4
1 3 4
5
9 1 8 3 4
1 3 4 9 8
【样例 #1】
由于没有冲突,原序列可以是 [1,3,4] 的任意一种排列组合,而其中 [1,3,4] 是所有可能的结果中字典序最小的一种。
【样例 #2】
数据插入过程如下:[−1,−1,−1,−1,−1]→[−1,1,−1,−1,−1]→[−1,1,−1,3,−1]→[−1,1,−1,3,4]→[9,1,−1,3,4]→[9,1,8,3,4]。
若按 [1,3,4,8,9] 顺序插入,将得到结果 [8,1,9,3,4],与输入不符,因此不存在字典序更小的插入顺序。
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.