+12

10 câu hỏi phỏng vấn JavaScript cực kỳ phổ biến (kèm câu trả lời) 😊 (Series: Bí kíp Javascript - PHẦN 34)

Bài này mình sẽ chụp hình chứ không copy code bỏ vào bài viết. Để các bạn có cơ hội gõ lại thay vì copy paste. Có thể khi các bạn đọc qua sẽ có lúc không hiểu nhưng chỉ cần gõ lại và debug là hiểu ngay. Bạn nào lười setup debug trong vscode thì dùng editor online luôn cũng okay.

1. Tìm tần suất xuất hiện của các phần tử trong mảng

Cách 1 : Sử dụng Reduce của mảng

image.png

Phương pháp 2 : Sử dụng một Object và một vòng For

image.png

2. Nhóm các đối tượng theo một thuộc tính nhất định

Ví dụ nhóm theo độ tuổi

image.png

3. Kiểm tra một chuỗi có được đóng mở bằng các cặp ngoặc ko.

Lưu ý trong VD bên dưới việc xóa các ký tự là space (ký tự khoảng trắng) chỉ là trường hợp cụ thể của vd này.

  • Trường hợp tổng quát hơn bao gôm nhiều ký từ khác thì cũng sử dụng regex xóa toàn bộ các ký tự không phải là đóng mở ngoặc.
  • Kết quả đâu vào sau khi clean sẽ luôn có dạng một chuỗi "chỉ bao gồm các ký tự dấu ngoặc"

image.png

4. Tìm các cặp phần tử mảng mà tổng bằng giá trị đã cho (Two Sum)

image.png

5. Tìm số còn thiếu trong mảng chưa sắp xếp với độ phức tạp O(n)

Phân tích thuật toán

Cách tìm rất đơn giản chỉ cần cộng từ 1-a.length+1 và trừ toàn bộ số trong mảng a đó đi là được.

image.png

6. Tìm số còn thiếu trong mảng đã sắp xếp với độ phức tạp O(n)

Số thứ i được cho là bị thiếu nếu như nó thõa mãn 2 trường hợp:

  1. Số tiếp theo trừ nó phải bằng 1
  2. Và số tiếp theo phải tồn tại

image.png

7. Tìm phần tử lớn thứ n trong mảng đã sắp xếp

image.png

8. Loại bỏ các giá trị trùng lặp khỏi một mảng và trả về các giá trị duy nhất ở độ phức tạp O(n).

image.png

9. In tất cả các phần tử trùng lặp của một mảng

image.png

10. Thu thập sách từ mảng đối tượng và trả về danh sách các đầu sách dưới dạng một mảng

image.png

Mình hy vọng bạn thích bài viết này và học thêm được điều gì đó mới.

Donate mình một ly cafe hoặc 1 cây bút bi để mình có thêm động lực cho ra nhiều bài viết hay và chất lượng hơn trong tương lai nhé. À mà nếu bạn có bất kỳ câu hỏi nào thì đừng ngại comment hoặc liên hệ mình qua: Zalo - 0374226770 hoặc Facebook. Mình xin cảm ơn.

Momo: NGUYỄN ANH TUẤN - 0374226770

TPBank: NGUYỄN ANH TUẤN - 0374226770 (hoặc 01681423001)

image.png


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí