P132. 第一个只出现一次的字符

https://algocasts.io/episodes/Y9pJkYWA

请问:第二种解法中,创建int[] pos后,默认的值都是0,那后面判断是否第一次出现就直接用pos[idx]==0。所以用Arrays.fill(pos, -1)是为了避免什么corner case么?
谢谢

@ky

由于 pos 中存储的是下标,而 0 是一个合法的下标值,如果让默认的 0 作为不合法初值,这样就会有歧义,所以这里使用了 Arrays.fill(pos, -1)

如果纯粹从输出结果的正确性来讲,直接使用初值 0 应该也是没问题的。

懂了。多谢!