Skip to content

Commit 5cc544e

Browse files
committed
feat: add solutions to lc problem: No.0922.Sort Array By Parity II
1 parent a4b5201 commit 5cc544e

File tree

7 files changed

+222
-38
lines changed

7 files changed

+222
-38
lines changed

solution/0900-0999/0922.Sort Array By Parity II/README.md

Lines changed: 83 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,108 @@
3333

3434
<p>&nbsp;</p>
3535

36-
3736
## 解法
3837

3938
<!-- 这里可写通用的实现逻辑 -->
4039

40+
双指针原地修改数组。
41+
4142
<!-- tabs:start -->
4243

4344
### **Python3**
4445

4546
<!-- 这里可写当前语言的特殊实现逻辑 -->
4647

4748
```python
48-
49+
class Solution:
50+
def sortArrayByParityII(self, nums: List[int]) -> List[int]:
51+
n, j = len(nums), 1
52+
for i in range(0, n, 2):
53+
if (nums[i] & 1) == 1:
54+
while (nums[j] & 1) == 1:
55+
j += 2
56+
nums[i], nums[j] = nums[j], nums[i]
57+
return nums
4958
```
5059

5160
### **Java**
5261

5362
<!-- 这里可写当前语言的特殊实现逻辑 -->
5463

5564
```java
65+
class Solution {
66+
public int[] sortArrayByParityII(int[] nums) {
67+
for (int i = 0, j = 1; i < nums.length; i += 2) {
68+
if ((nums[i] & 1) == 1) {
69+
while ((nums[j] & 1) == 1) {
70+
j += 2;
71+
}
72+
int t = nums[i];
73+
nums[i] = nums[j];
74+
nums[j] = t;
75+
}
76+
}
77+
return nums;
78+
}
79+
}
80+
```
81+
82+
### **C++**
83+
84+
```cpp
85+
class Solution {
86+
public:
87+
vector<int> sortArrayByParityII(vector<int> &nums) {
88+
for (int i = 0, j = 1; i < nums.size(); i += 2)
89+
{
90+
if ((nums[i] & 1) == 1)
91+
{
92+
while ((nums[j] & 1) == 1)
93+
{
94+
j += 2;
95+
}
96+
swap(nums[i], nums[j]);
97+
}
98+
}
99+
return nums;
100+
}
101+
};
102+
```
103+
104+
### **Go**
105+
106+
```go
107+
func sortArrayByParityII(nums []int) []int {
108+
for i, j := 0, 1; i < len(nums); i += 2 {
109+
if (nums[i] & 1) == 1 {
110+
for (nums[j] & 1) == 1 {
111+
j += 2
112+
}
113+
nums[i], nums[j] = nums[j], nums[i]
114+
}
115+
}
116+
return nums
117+
}
118+
```
56119

120+
### **JavaScript**
121+
122+
```js
123+
/**
124+
* @param {number[]} nums
125+
* @return {number[]}
126+
*/
127+
var sortArrayByParityII = function(nums) {
128+
for (let i = 0, j = 1; i < nums.length; i += 2) {
129+
if ((nums[i] & 1) == 1) {
130+
while ((nums[j] & 1) == 1) {
131+
j += 2;
132+
}
133+
[nums[i], nums[j]] = [nums[j], nums[i]];
134+
}
135+
}
136+
return nums;
137+
};
57138
```
58139

59140
### **...**

solution/0900-0999/0922.Sort Array By Parity II/README_EN.md

Lines changed: 81 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,100 @@
3636
<li><code>0 &lt;= nums[i] &lt;= 1000</code></li>
3737
</ul>
3838

39-
4039
## Solutions
4140

4241
<!-- tabs:start -->
4342

4443
### **Python3**
4544

4645
```python
47-
46+
class Solution:
47+
def sortArrayByParityII(self, nums: List[int]) -> List[int]:
48+
n, j = len(nums), 1
49+
for i in range(0, n, 2):
50+
if (nums[i] & 1) == 1:
51+
while (nums[j] & 1) == 1:
52+
j += 2
53+
nums[i], nums[j] = nums[j], nums[i]
54+
return nums
4855
```
4956

5057
### **Java**
5158

5259
```java
60+
class Solution {
61+
public int[] sortArrayByParityII(int[] nums) {
62+
for (int i = 0, j = 1; i < nums.length; i += 2) {
63+
if ((nums[i] & 1) == 1) {
64+
while ((nums[j] & 1) == 1) {
65+
j += 2;
66+
}
67+
int t = nums[i];
68+
nums[i] = nums[j];
69+
nums[j] = t;
70+
}
71+
}
72+
return nums;
73+
}
74+
}
75+
```
76+
77+
### **C++**
78+
79+
```cpp
80+
class Solution {
81+
public:
82+
vector<int> sortArrayByParityII(vector<int> &nums) {
83+
for (int i = 0, j = 1; i < nums.size(); i += 2)
84+
{
85+
if ((nums[i] & 1) == 1)
86+
{
87+
while ((nums[j] & 1) == 1)
88+
{
89+
j += 2;
90+
}
91+
swap(nums[i], nums[j]);
92+
}
93+
}
94+
return nums;
95+
}
96+
};
97+
```
98+
99+
### **Go**
100+
101+
```go
102+
func sortArrayByParityII(nums []int) []int {
103+
for i, j := 0, 1; i < len(nums); i += 2 {
104+
if (nums[i] & 1) == 1 {
105+
for (nums[j] & 1) == 1 {
106+
j += 2
107+
}
108+
nums[i], nums[j] = nums[j], nums[i]
109+
}
110+
}
111+
return nums
112+
}
113+
```
53114

115+
### **JavaScript**
116+
117+
```js
118+
/**
119+
* @param {number[]} nums
120+
* @return {number[]}
121+
*/
122+
var sortArrayByParityII = function(nums) {
123+
for (let i = 0, j = 1; i < nums.length; i += 2) {
124+
if ((nums[i] & 1) == 1) {
125+
while ((nums[j] & 1) == 1) {
126+
j += 2;
127+
}
128+
[nums[i], nums[j]] = [nums[j], nums[i]];
129+
}
130+
}
131+
return nums;
132+
};
54133
```
55134

56135
### **...**
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public:
3+
vector<int> sortArrayByParityII(vector<int> &nums) {
4+
for (int i = 0, j = 1; i < nums.size(); i += 2)
5+
{
6+
if ((nums[i] & 1) == 1)
7+
{
8+
while ((nums[j] & 1) == 1)
9+
{
10+
j += 2;
11+
}
12+
swap(nums[i], nums[j]);
13+
}
14+
}
15+
return nums;
16+
}
17+
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
func sortArrayByParityII(nums []int) []int {
2+
for i, j := 0, 1; i < len(nums); i += 2 {
3+
if (nums[i] & 1) == 1 {
4+
for (nums[j] & 1) == 1 {
5+
j += 2
6+
}
7+
nums[i], nums[j] = nums[j], nums[i]
8+
}
9+
}
10+
return nums
11+
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
class Solution {
2-
public int[] sortArrayByParityII(int[] A) {
3-
int j = 1, length = A.length;
4-
for (int i = 0; i < length; i += 2) {
5-
if ((A[i] & 1) != 0) {
6-
while ((A[j] & 1) != 0) j += 2;
7-
8-
// Swap A[i] and A[j]
9-
int tmp = A[i];
10-
A[i] = A[j];
11-
A[j] = tmp;
2+
public int[] sortArrayByParityII(int[] nums) {
3+
for (int i = 0, j = 1; i < nums.length; i += 2) {
4+
if ((nums[i] & 1) == 1) {
5+
while ((nums[j] & 1) == 1) {
6+
j += 2;
7+
}
8+
int t = nums[i];
9+
nums[i] = nums[j];
10+
nums[j] = t;
1211
}
1312
}
14-
return A;
13+
return nums;
1514
}
1615
}
Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,15 @@
11
/**
2-
* @param {number[]} A
2+
* @param {number[]} nums
33
* @return {number[]}
44
*/
5-
6-
/**
7-
* Author: Mcnwork2018
8-
*/
9-
10-
var sortArrayByParityII = function (A) {
11-
let index = A.length - 1,
12-
i = 0,
13-
j = 1; // index A的索引, i偶数位, j奇数位。
14-
for (; i < index; i += 2) {
15-
if ((A[i] & 1) != 0) {
16-
// 寻找A[i]是奇数的情况。
17-
while ((A[j] & 1) != 0) {
18-
// 寻找A[j]是偶数的情况。
19-
j += 2;
20-
}
21-
let temp = A[j];
22-
A[j] = A[i];
23-
A[i] = temp;
5+
var sortArrayByParityII = function(nums) {
6+
for (let i = 0, j = 1; i < nums.length; i += 2) {
7+
if ((nums[i] & 1) == 1) {
8+
while ((nums[j] & 1) == 1) {
9+
j += 2;
10+
}
11+
[nums[i], nums[j]] = [nums[j], nums[i]];
12+
}
2413
}
25-
}
26-
return A;
27-
};
14+
return nums;
15+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def sortArrayByParityII(self, nums: List[int]) -> List[int]:
3+
n, j = len(nums), 1
4+
for i in range(0, n, 2):
5+
if (nums[i] & 1) == 1:
6+
while (nums[j] & 1) == 1:
7+
j += 2
8+
nums[i], nums[j] = nums[j], nums[i]
9+
return nums

0 commit comments

Comments
 (0)