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

Xây dựng dãy n số tự nhiên đầu tiên tăng dần theo từ điển trong JavaScript

Mô tả vấn đề

Chúng ta cần viết hàm JavaScript nhận vào số n, trả về mảng chứa n số tự nhiên đầu tiên. Điều kiện: các số phải sắp xếp theo thứ tự từ điển (lexicographically) - tất cả số bắt đầu bằng 1 đến trước, rồi 2, 3, 4...

Ví dụ minh họa

Mã thực hiện (DFS tiền tố):

const num = 24; 
const buildLexicographically = (num = 1) => { 
  const res = []; 
  const curr = num >= 9 ? 9 : num; 
  for (let i = 1; i <= curr; i++) { 
    res.push(i); 
    for (let j = i * 10; j <= num; j++) { 
      res.push(j); 
      if(j % 10 === 9){ break; } 
    } 
  }; 
  return res; 
}; 
console.log(buildLexicographically(num));

Đầu ra

Kết quả trong console:

[ 
  1, 10, 11, 12, 13, 14, 15, 16, 
  17, 18, 19, 2, 20, 21, 22, 23, 
  24, 3, 4, 5, 6, 7, 8, 9 
]