本来以为需要时间复杂度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; } } } };