不過也是一個,面試考我這題我會大慌張的題目吧。沒看解答根本不會啊!哈!
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* xorQueries(int* arr, int arrSize, int** queries, int queriesSize, int* queriesColSize, int* returnSize) {
int *prefix = calloc (arrSize, sizeof(int));
int *ret = calloc (queriesSize, sizeof(int));
*returnSize = queriesSize;
prefix[0]= arr[0];
for (int i=1; i<arrSize; i++)
prefix[i]= prefix[i-1]^ arr[i];
for (int i=0; i<queriesSize; i++)
{
if (queries[i][0]== 0)
ret[i]= prefix[queries[i][1]];
else
ret[i]= prefix[queries[i][1]] ^ (prefix[queries[i][0]-1]);
}
return ret;
}
沒有留言:
張貼留言