Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Thuật toán in-place di chuyển số 0 về cuối mảng JavaScript

Viết hàm đưa tất cả số 0 về cuối mảng, giữ nguyên thứ tự tương đối của các phần tử khác, thực hiện in-place.

Ví dụ: [0,11,0,22,67] → [11,22,67,0,0].

Ví dụ

const arr = [0, 11, 0, 22, 67];
const moveZeroToEnd = (arr = []) => {
  const swap = (array, i1, i2) => {
    const temp = array[i1];
    array[i1] = array[i2];
    array[i2] = temp;
  };
  let j = 0;
  for (let i = 0; i < arr.length; ++i) {
    if (arr[i] !== 0) swap(arr, i, j++);
  }
  while (j < arr.length) arr[j++] = 0;
};
moveZeroToEnd(arr);
console.log(arr);

Kết quả

[11, 22, 67, 0, 0]