Tenga en cuenta que el tamaño de la matriz dada aquí debe ser par, por lo que para darse cuenta de que los subíndices impares requeridos por el problema corresponden a números impares, y los subíndices pares corresponden a números pares, podemos considerar recorrer los subíndices pares en la matriz para ver si es par, si De lo contrario, el número no impar correspondiente al índice impar se reemplaza por una posición, y la posición del índice impar se registra al mismo tiempo, de modo que el recorrido comienza directamente desde el punto en el siguiente recorrido. Lo que debe saberse es que cuando el número correspondiente al subíndice par es par, el número correspondiente al subíndice impar en la matriz debe ser impar. El código es el siguiente:
vector<int> sortArrayByParityII(vector<int>& A) {
int index = 1;
for (int i = 0; i < A.size(); i+=2) {
if(A[i] % 2 != 0){
for (int j = index; j < A.size(); j+=2) {
if(A[j] % 2 == 0){
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
index = j + 2;
}
}
}
}
return A;
}