diff --git a/solution/1300-1399/1310.XOR Queries of a Subarray/README.md b/solution/1300-1399/1310.XOR Queries of a Subarray/README.md index f8eed9053a743..e58616496da9a 100644 --- a/solution/1300-1399/1310.XOR Queries of a Subarray/README.md +++ b/solution/1300-1399/1310.XOR Queries of a Subarray/README.md @@ -93,6 +93,29 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} arr + * @param {number[][]} queries + * @return {number[]} + */ +var xorQueries = function(arr, queries) { + let n = arr.length; + let xors = new Array(n + 1).fill(0); + for (let i = 0; i < n; i++) { + xors[i + 1] = xors[i] ^ arr[i]; + } + let res = []; + for (let query of queries) { + let [start, end] = query; + res.push(xors[start] ^ xors[end + 1]); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/1300-1399/1310.XOR Queries of a Subarray/README_EN.md b/solution/1300-1399/1310.XOR Queries of a Subarray/README_EN.md index 4ebf2257d8358..b729272603514 100644 --- a/solution/1300-1399/1310.XOR Queries of a Subarray/README_EN.md +++ b/solution/1300-1399/1310.XOR Queries of a Subarray/README_EN.md @@ -106,6 +106,29 @@ class Solution { } ``` +### **JavaScript** + +```js +/** + * @param {number[]} arr + * @param {number[][]} queries + * @return {number[]} + */ +var xorQueries = function(arr, queries) { + let n = arr.length; + let xors = new Array(n + 1).fill(0); + for (let i = 0; i < n; i++) { + xors[i + 1] = xors[i] ^ arr[i]; + } + let res = []; + for (let query of queries) { + let [start, end] = query; + res.push(xors[start] ^ xors[end + 1]); + } + return res; +}; +``` + ### **...** ``` diff --git a/solution/1300-1399/1310.XOR Queries of a Subarray/Solution.js b/solution/1300-1399/1310.XOR Queries of a Subarray/Solution.js new file mode 100644 index 0000000000000..899818b6fe266 --- /dev/null +++ b/solution/1300-1399/1310.XOR Queries of a Subarray/Solution.js @@ -0,0 +1,18 @@ +/** + * @param {number[]} arr + * @param {number[][]} queries + * @return {number[]} + */ + var xorQueries = function(arr, queries) { + let n = arr.length; + let xors = new Array(n + 1).fill(0); + for (let i = 0; i < n; i++) { + xors[i + 1] = xors[i] ^ arr[i]; + } + let res = []; + for (let query of queries) { + let [start, end] = query; + res.push(xors[start] ^ xors[end + 1]); + } + return res; +}; \ No newline at end of file