File tree Expand file tree Collapse file tree 2 files changed +84
-0
lines changed
0905.Sort Array By Parity
0985.Sum of Even Numbers After Queries Expand file tree Collapse file tree 2 files changed +84
-0
lines changed Original file line number Diff line number Diff line change
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
+ } ;
Original file line number Diff line number Diff line change
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
+ } ;
You can’t perform that action at this time.
0 commit comments