我有一个问题,我有一个整数数组,我定义一个区间是好的区间当且仅当在该区间内每个整数出现的次数都是偶数(包括零)。我想找到给定整数数组中好的区间的数量。例如,如果数组=[7,7,1,5,5,1],那么好的区间分别为[1,2]、[3,6]、[4,5]、[1,6],对应连续子数组 [7,7]、[1,5,5,1]、[5,5]、[7,7,1,5,5,1]。如果数组=[4,5,6,5,4],则没有好的区间。
我有一个朴素的解决方案,就是使用两个for循环并检查每个可能的区间是否存在好的区间,但这需要O(n^2)的时间。我想找到一个更好的解决方案,能够在O(nlogn)的时间内运行,并且我认为使用哈希可以给我一个更快的解决方案,问题是我不知道如何将它纳入我的答案。我一直在阅读滚动 Robin-Karp 哈希算法来给我一些思路,但我认为这个算法不适用于我所寻求的。你们有没有任何使用哈希解决此问题的O(nlogn)时间复杂度算法的想法呢?
我有一个朴素的解决方案,就是使用两个for循环并检查每个可能的区间是否存在好的区间,但这需要O(n^2)的时间。我想找到一个更好的解决方案,能够在O(nlogn)的时间内运行,并且我认为使用哈希可以给我一个更快的解决方案,问题是我不知道如何将它纳入我的答案。我一直在阅读滚动 Robin-Karp 哈希算法来给我一些思路,但我认为这个算法不适用于我所寻求的。你们有没有任何使用哈希解决此问题的O(nlogn)时间复杂度算法的想法呢?