Arrays 查找字符串中的重复字符(解决方案必须小于O(n^2)
如果我们遍历每个字符的字符串数组并与所有其他字符进行比较,我们会找到重复的字符,但这是O(n^2) 我需要一些想法在不到O(n^2)的时间内完成它 假设输入字符串是:那么好书Arrays 查找字符串中的重复字符(解决方案必须小于O(n^2),arrays,string,Arrays,String,如果我们遍历每个字符的字符串数组并与所有其他字符进行比较,我们会找到重复的字符,但这是O(n^2) 我需要一些想法在不到O(n^2)的时间内完成它 假设输入字符串是:那么好书 输出将是:o迭代所有字符,并将它们存储到哈希映射中,其中键是字符本身,值是任何东西(字符、true、整数等)。在将字符添加到哈希映射之前,请检查该字符是否已存在,如果存在,如果不插入,则该字符是重复的 这是一个pesudo代码 for character char in String if charactersMa
输出将是:o迭代所有字符,并将它们存储到
哈希映射中,其中键是字符本身,值是任何东西(字符、true、整数等)。在将字符添加到哈希映射之前,请检查该字符是否已存在,如果存在,如果不插入,则该字符是重复的
这是一个pesudo代码
for character char in String
if charactersMap.get(char) == null
charactersMap.put(char, char)
else
print C
这个解决方案是O(n)
,因为它在字符上迭代一次,在映射中查找一个键需要固定的时间。迭代所有字符并将它们存储到HashMap
中,键是字符本身,值是否定的(字符、true、整数……)。在将字符添加到哈希映射之前,请检查该字符是否已存在,如果已存在,则该字符是重复的(如果未插入)
这是一个pesudo代码
for character char in String
if charactersMap.get(char) == null
charactersMap.put(char, char)
else
print C
此解决方案是O(n)
当它在字符上迭代一次并在地图中查找一个键时需要固定的时间。要求有点不清楚。你能提供一些示例输入和你试图得到的结果吗?要求有点不清楚。你能提供一些示例输入和你试图得到的结果吗?