Info
- Tổng hợp các thuật toán, chiến lược, suy luận, giải thích và áp dụng giải quyết các ví dụ cụ thể trên LeeCode!
- Các chủ đề được chia rõ, bạn có thể tìm đến chủ đề bạn quan tâm, không cần phải đọc từ trên xuống dưới!
Info
Độ phức tạp của thuật toán (Algorithm complexity): Là cách sử dụng thời gian và không gian của chương trình trong điều kiện đầu vào của vấn đề có kích thước là n.
Giải thuật là cốt lõi của chương trình, trong khi cấu trúc dữ liệu là linh hồn của chương trình.
Algorithm + Data Structure = Program là một cuốn sách rất nổi tiếng do Niklaus Wirth, cha đẻ của ngôn ngữ Pascal, viết. Câu này cũng trở thành một câu nói kinh điển trong lĩnh vực khoa học máy tính. Điều này cho thấy mối quan hệ mật thiết giữa giải thuật và cấu trúc dữ liệu trong lập trình.
Phép toán bit (Bit Operation): Trong máy tính, số được lưu trữ dưới dạng "hệ nhị phân (Binary)". Phép toán bit là việc thực hiện các phép toán trực tiếp trên biểu diễn nhị phân của số. Sử dụng phép toán bit trong chương trình có thể cải thiện hiệu suất của chương trình đáng kể.
Thuật toán chia để trị (Divide and Conquer): Ý nghĩa đen là "chia và giải quyết", nghĩa là chia một vấn đề phức tạp thành hai hoặc nhiều vấn đề con giống nhau hoặc tương tự, cho đến khi cuối cùng các vấn đề con có thể được giải quyết một cách đơn giản và trực tiếp, kết quả của vấn đề gốc là tổng hợp của các giải pháp của các vấn đề con.
Problem ID | Title | Solution | Tags | Difficulty |
---|---|---|---|---|
0001 | Two Sum | [[LeetCode XXXX]] | Array, Hash Table | Easy |
0204 | Count Primes | [[LeetCode XXXX]] | Array, Math, Enumeration, Number Theory | Medium |
1925 | Count Square Sum Triples | [[LeetCode XXXX]] | Math, Enumeration | Easy |
1450 | Number of Students Doing Homework at a Given Time | [[LeetCode XXXX]] | Array | Easy |
1620 | Coordinate With Maximum Network Quality | Array, Enumeration | Medium | |
0800 | Similar RGB Color | [[LeetCode XXXX]] | Math, String, Enumeration | Easy |
0221 | Maximal Square | [[LeetCode XXXX]] | Array, Dynamic Programming, Matrix | Medium |
0560 | Subarray Sum Equals K | [[LeetCode XXXX]] | Array, Hash Table, Prefix Sum | Medium |
Thuật toán liệt kê (Enumeration Algorithm): còn được gọi là thuật toán duyệt tất cả các trường hợp, là phương pháp liệt kê tất cả các giải pháp có thể của một vấn đề dựa trên tính chất của vấn đề đó. Trong quá trình liệt kê, thuật toán so sánh từng trường hợp với trạng thái mục tiêu để tìm ra các giải pháp thỏa mãn yêu cầu của vấn đề. Trong quá trình liệt kê, không được bỏ sót hoặc lặp lại các trường hợp.
Thuật toán tham lam (Greedy Algorithm): Là một thuật toán luôn lựa chọn lựa chọn tốt nhất trong trạng thái hiện tại ở mỗi bước quyết định, với hy vọng dẫn đến kết quả tốt nhất hoặc tối ưu.
Đệ quy (Recursion): Là một phương pháp giải quyết vấn đề bằng cách lặp lại việc chia nhỏ vấn đề gốc thành các vấn đề con cùng loại. Trong hầu hết các ngôn ngữ lập trình, đệ quy có thể được thực hiện bằng cách gọi lại chính hàm đó trong hàm.