当前位置: 首页 > 知识库问答 >
问题:

求异或为0的子阵

邢永安
2023-03-14

我陷入了一个问题,即寻找一个xor为0的子数组。我在某个地方读到,这可以使用TRIE数据结构来完成,但我想要数组的开始和结束索引。

例如,考虑一个数组

我尝试了这里提到的解决方案,但这没有给出索引。

我正在寻找一个O(nLogn)或可能O(n)复杂度的算法。

共有1个答案

左丘元徽
2023-03-14

该解决方案也具有O(n)复杂性。利用unordered_map的优点。

vector<int> a = {3,6,13,8,15};
unordered_map<int, int> hashMap;
int number_of_elements = a.size();
hashMap[0] = -1;
int xor_sum = 0;
for(int i = 0; i < number_of_elements; i++) {
    xor_sum ^= a[i];
    if(hashMap.find(xorSum) != hashMap.end()) {
        cout << hashMap[xorSum] + 1 << " " << i << endl;
        break;
    }
    hashMap[xor_sum] = i;
}
 类似资料:
  • 我正在尝试从数据库的某一行获取文本。为此,我做了这个函数 我这样称呼它: 我的桌子看起来像这样: 我得到这个错误: 为什么我会犯这个错误?我做错了什么? 提前感谢。

  • 我试图从我的sqlite数据库中获取一行。当我运行这行代码时:- 我得到以下错误:- android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0 有人能帮我解决这个问题吗?感谢任何帮助或建议。谢谢你。

  • 下面考虑一个简单异常处理例子。图 13.1 的程序用 try、throw 和 catch 检测除数为0的异常情况,表示并处理除数为0的异常。 1 // Fig. 13.1:fig13_01.cpp 2 // A simple exception handling example. 3 // Checking for a divide-by zero exception. 4 #include <i

  • 我得到以下错误: android.database.CursorIndexOutOfBoundsException:请求索引0,大小为0。 根据该代码: 和这个类:错误:

  • 我正在制作一个应用程序,并使用SQLite来保存我的设置数据。但我一直得到这个错误:android.database.CursorIndexOutOfBoundsExcture:索引0请求,大小为0 我已尝试插入默认值,但仍出现此错误。也许我误解了什么。这是文件 这就是错误

  • 启用了php项目上的应用程序洞察,它正在主机上运行。但是,在本地框上运行相同的代码时,出现以下错误:[似乎某些IIS配置问题或更新不确定] 致命错误:未捕获的GuzzleHttp\异常\请求异常: cURL错误0: cURL请求重试了3次,没有成功。失败的最可能原因是cURL无法倒带请求正文,随后的重试导致了相同的错误。打开调试选项,看看哪里出了问题。请参见https://bugs.php.net