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

Sắp xếp mảng nhị phân (1 lên đầu, 0 xuống cuối) - JavaScript

Viết hàm sắp xếp mảng chỉ chứa 0 và 1: đưa tất cả 1 lên đầu, 0 xuống cuối.

Ví dụ

Đầu vào: [1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1]

Đầu ra: [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]

Giải pháp

Mã triển khai (đếm số 1):

const arr = [1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1];

const sortBinary = arr => {
  const count1 = arr.filter(x => x === 1).length;
  return [...Array(count1).fill(1), ...Array(arr.length - count1).fill(0)];
};

console.log(sortBinary(arr));

Kết quả

Đầu ra trong console:

[1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]

Cách khác: arr.sort((a,b) => b - a) hoặc two-pointer swap in-place O(n).