1310 - XOR Queries of a Subarray

 C++

  • class Solution {
    public:
        vector<int> xorQueries(vector<int>& arr, vector<vector<int>>& queries) {
            int n = arr.size();
            int s[n + 1];
            memset(s, 0, sizeof(s));
            for (int i = 1; i <= n; ++i) {
                s[i] = s[i - 1] ^ arr[i - 1];
            }
            vector<int> ans;
            for (auto& q : queries) {
                int l = q[0], r = q[1];
                ans.push_back(s[r + 1] ^ s[l]);
            }
            return ans;
        }
    };

JAVA

  • class Solution {
        public int[] xorQueries(int[] arr, int[][] queries) {
            int n = arr.length;
            int[] s = new int[n + 1];
            for (int i = 1; i <= n; ++i) {
                s[i] = s[i - 1] ^ arr[i - 1];
            }
            int m = queries.length;
            int[] ans = new int[m];
            for (int i = 0; i < m; ++i) {
                int l = queries[i][0], r = queries[i][1];
                ans[i] = s[r + 1] ^ s[l];
            }
            return ans;
        }
    }

Comments