Hello, I got a solution for lc 977 but need to check if its O(n) or O(n^2) and im really confused...
here is my code:
public int[] sortedSquares(int[] nums) {
int numNeg = 0;
int numPos = 0;
int p = 0;
while (p < nums.length && nums[p] < 0) {
numNeg++;
p++;
}
numPos = nums.length - numNeg;
int[] negArr = new int[numNeg];
int[] posArr = new int[numPos];
for (int i = 0; i < numNeg; i++) {
negArr[i] = nums[i] * nums[i];
}
for (int i = numNeg; i < nums.length; i++) {
posArr[i-numNeg] = nums[i] * nums[i];
}
int i = negArr.length - 1;
int j = 0;
int[] res = new int[nums.length];
int curr = 0;
while (i >= 0 && j < posArr.length) {
if (negArr[i] < posArr[j]) {
res[curr] = negArr[i];
i--;
} else {
res[curr] = posArr[j];
j++;
}
curr++;
}
if (i < 0) {
while (j < posArr.length) {
res[curr] = posArr[j];
curr++;
j++;
}
} else if (j >= posArr.length) {
while (i >= 0) {
res[curr] = negArr[i];
curr++;
i--;
}
}
return res;
}
}```