From 49352d7fbeb7a21f32afa873bc868df745721f4d Mon Sep 17 00:00:00 2001 From: Mcnwork2018 Date: Mon, 18 Feb 2019 13:22:31 +0800 Subject: [PATCH 1/2] Add solution 0905 solution.js --- .../0905.Sort Array By Parity/Solution.js | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 solution/0905.Sort Array By Parity/Solution.js diff --git a/solution/0905.Sort Array By Parity/Solution.js b/solution/0905.Sort Array By Parity/Solution.js new file mode 100644 index 0000000000000..4173defca9ec2 --- /dev/null +++ b/solution/0905.Sort Array By Parity/Solution.js @@ -0,0 +1,54 @@ +/** + * @param {number[]} A + * @return {number[]} + */ +// 第一次的做法 +var sortArrayByParity = function (A) { + const len = A.length; + if (len == 1) return A; + let evenNumber = []; + let oddNumber = []; + for (let i = 0; i < len; i++) { + if (A[i] % 2 == 0) { + evenNumber.push(A[i]); + } + if (A[i] % 2 != 0) { + oddNumber.push(A[i]); + } + } + return evenNumber.concat(oddNumber); +}; +// 修改第一次的代码,只使用一个数组,减少一次合并数组操作 +var sortArrayByParity = function (A) { + const len = A.length; + if (len == 1) return A; + let eoNum = []; + for (let i = 0; i < len; i++) { + if (A[i] % 2 == 1) { + eoNum.push(A[i]); + } + if (A[i] % 2 == 0) { + eoNum.unshift(A[i]); + } + } + return eoNum; +}; +// 双指针做法,无需新数组,push和unshift操作,利用第三个变量进行交换 +var sortArrayByParity = function (A) { + const len = A.length; + if (len == 1) return A; + let i = 0, + j = len - 1; + while (i < j) { + if ((A[i] % 2 == 1) && (A[j] % 2 == 0)) { + let temp = A[j]; + A[j] = A[i]; + A[i] = temp; + i++; + j--; + } + if (A[i] % 2 == 0) i++; + if (A[j] % 2 == 1) j--; + } + return A; +}; \ No newline at end of file From 1f998bf01e9cebf8bcb01d54d4c4cd5f1ce587b0 Mon Sep 17 00:00:00 2001 From: Mcnwork2018 Date: Mon, 18 Feb 2019 13:28:56 +0800 Subject: [PATCH 2/2] Add solution 0985 Solution.js --- .../Solution.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 solution/0985.Sum of Even Numbers After Queries/Solution.js diff --git a/solution/0985.Sum of Even Numbers After Queries/Solution.js b/solution/0985.Sum of Even Numbers After Queries/Solution.js new file mode 100644 index 0000000000000..3a8b75a0de4f6 --- /dev/null +++ b/solution/0985.Sum of Even Numbers After Queries/Solution.js @@ -0,0 +1,30 @@ +/** + * @param {number[]} A + * @param {number[][]} queries + * @return {number[]} + */ +var sumEvenAfterQueries = function (A, queries) { + const len = A.length; // A数组的长度 + const qlen = queries.length; // queries数组的长度 + let answer = []; + let S = 0; + for (let i = 0; i < len; i++) { + if (A[i] % 2 == 0) { + S += A[i]; + } + } + for (let j = 0; j < qlen; j++) { + let val = queries[j][0]; + let index = queries[j][1]; + if (A[index] % 2 == 0) { + S -= A[index]; + } + A[index] += val + if (A[index] % 2 == 0) { + S += A[index] + + } + answer.push(S); + } + return answer; +}; \ No newline at end of file