我收到的提到的代码超时错误. 需要帮助来优化嵌套循环



当在大型数组上使用以下嵌套循环时,我在运行时收到 TIME OUT 错误。

我已经尝试了嵌套循环并为每个循环嵌套。虽然两者的时间复杂度相同。因此,它不会优化代码。

完成下面的 maxXor 函数。

static int[] maxXor(int[] arr, int[] queries) {     
int[] result = new int[queries.length];
int max ;
//Finding the maximum of each query with array(arr) .
for(int i=0;i<queries.length;i++)
{   
max = 0;
for(int j=0;j<arr.length;j++)
{
if((queries[i] ^ arr[j]) > max)
max = queries[i] ^ arr[j];
}
result[i] = max;   
} 
return result;

预期结果 = 每个查询的最大结果数组。

实际结果 = 超时错误

超时错误听起来很奇怪,数组的基数是多少?

可能是由于内存不足问题吗?

尝试使用此版本的函数:

static int[] maxXor(int[] arr, int[] queries) {
int[] result = new int[queries.length];
//Finding the maximum of each query with array(arr) .
for (int i = 0; i < queries.length; i++) {
result[i] = 0;
for (int j : arr) {
int or = queries[i] ^ j;
result[i] = or > result[i] ? or : result[i];
}
}
return result;
}

最新更新