Skip to content

Commit e971320

Browse files
authored
Update Rearrange Array Elements by Sign.java
1 parent 2149073 commit e971320

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed
Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,18 @@
11
class Solution {
2-
public int[] rearrangeArray(int[] nums) {
3-
List<Integer> positive = new ArrayList<>();
4-
List<Integer> negative = new ArrayList<>();
5-
for (int num : nums) {
6-
if (num > 0) {
7-
positive.add(num);
8-
} else {
9-
negative.add(num);
10-
}
2+
public int[] rearrangeArray(int[] nums) {
3+
int n = nums.length;
4+
int[] result = new int[n];
5+
int posIndex = 0;
6+
int negIndex = 1;
7+
for (int i = 0; i < n; i++) {
8+
if (nums[i] > 0) {
9+
result[posIndex] = nums[i];
10+
posIndex += 2;
11+
} else {
12+
result[negIndex] = nums[i];
13+
negIndex += 2;
14+
}
15+
}
16+
return result;
1117
}
12-
int positiveIdx = 0;
13-
int negativeIdx = 0;
14-
boolean positiveFlag = true;
15-
for (int i = 0; i < nums.length; i++) {
16-
nums[i] = positiveFlag ? positive.get(positiveIdx++) : negative.get(negativeIdx++);
17-
positiveFlag = !positiveFlag;
18-
}
19-
return nums;
20-
}
2118
}

0 commit comments

Comments
 (0)