本来以为需要时间复杂度O(n),空间复杂度O(1)的解法,实在没想出来去看了官方题解,结果还是需要n方的时间复杂度。。。
class Solution {
public:
void reOrderArray(vector<int> &array) {
int i = 0;
for (int j = 0; j < array.size(); j++) {
if (array[j] % 2) {
int tmp = array[j];
for (int k = j - 1; k >= i; k--) {
array[k + 1] = array[k];
}
array[i++] = tmp;
}
}
}
};

京公网安备 11010502036488号