この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
168. ゼロを後ろに

以下はJavaScriptでの回答例です。

function moveZeros(arr) {
  // インデックスiから始めて0以外の値があるインデックスjを探し、iとjの値を入れ替える
  for (let i = 0, j = 0; j < arr.length; j++) {
    if (arr[j] !== 0) {
      let temp = arr[i];
      arr[i] = arr[j];
      arr[j] = temp;
      i++;
    }
  }
}

この解法の時空間計算量は、配列の要素数をNとすると、O(N)です。配列を一度しかループしないため、空間計算量もO(N)です。