Skip to content

Commit 3be42d0

Browse files
authored
Merge pull request #151 from Mcnwork2018/dev
Add solution 0905 solution.js
2 parents 9a52d27 + 1f998bf commit 3be42d0

File tree

2 files changed

+84
-0
lines changed

2 files changed

+84
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/**
2+
* @param {number[]} A
3+
* @return {number[]}
4+
*/
5+
// 第一次的做法
6+
var sortArrayByParity = function (A) {
7+
const len = A.length;
8+
if (len == 1) return A;
9+
let evenNumber = [];
10+
let oddNumber = [];
11+
for (let i = 0; i < len; i++) {
12+
if (A[i] % 2 == 0) {
13+
evenNumber.push(A[i]);
14+
}
15+
if (A[i] % 2 != 0) {
16+
oddNumber.push(A[i]);
17+
}
18+
}
19+
return evenNumber.concat(oddNumber);
20+
};
21+
// 修改第一次的代码,只使用一个数组,减少一次合并数组操作
22+
var sortArrayByParity = function (A) {
23+
const len = A.length;
24+
if (len == 1) return A;
25+
let eoNum = [];
26+
for (let i = 0; i < len; i++) {
27+
if (A[i] % 2 == 1) {
28+
eoNum.push(A[i]);
29+
}
30+
if (A[i] % 2 == 0) {
31+
eoNum.unshift(A[i]);
32+
}
33+
}
34+
return eoNum;
35+
};
36+
// 双指针做法,无需新数组,push和unshift操作,利用第三个变量进行交换
37+
var sortArrayByParity = function (A) {
38+
const len = A.length;
39+
if (len == 1) return A;
40+
let i = 0,
41+
j = len - 1;
42+
while (i < j) {
43+
if ((A[i] % 2 == 1) && (A[j] % 2 == 0)) {
44+
let temp = A[j];
45+
A[j] = A[i];
46+
A[i] = temp;
47+
i++;
48+
j--;
49+
}
50+
if (A[i] % 2 == 0) i++;
51+
if (A[j] % 2 == 1) j--;
52+
}
53+
return A;
54+
};
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @param {number[]} A
3+
* @param {number[][]} queries
4+
* @return {number[]}
5+
*/
6+
var sumEvenAfterQueries = function (A, queries) {
7+
const len = A.length; // A数组的长度
8+
const qlen = queries.length; // queries数组的长度
9+
let answer = [];
10+
let S = 0;
11+
for (let i = 0; i < len; i++) {
12+
if (A[i] % 2 == 0) {
13+
S += A[i];
14+
}
15+
}
16+
for (let j = 0; j < qlen; j++) {
17+
let val = queries[j][0];
18+
let index = queries[j][1];
19+
if (A[index] % 2 == 0) {
20+
S -= A[index];
21+
}
22+
A[index] += val
23+
if (A[index] % 2 == 0) {
24+
S += A[index]
25+
26+
}
27+
answer.push(S);
28+
}
29+
return answer;
30+
};

0 commit comments

Comments
 (0)