Nobjtaz_Thiemvan:

📚 HỆ THỐNG THƯ VIỆN SỐ 📚

📖 THỬ THÁCH THỦ THƯ

Thuật toán TÌM KIẾM 💎HAI CON TRỎ

1. Xử lý các bài toán trên Mảng/Danh sách đã sắp xếp Đây là ứng dụng kinh điển nhất. Khi dữ liệu đã được sắp xếp (ví dụ: danh sách bài viết theo ngày tháng, danh sách sản phẩm theo giá), hai con trỏ giúp bạn tìm kiếm cực nhanh: Tìm cặp giá trị thỏa mãn điều kiện: Giống như ví dụ mình vừa làm cho bạn (tìm 2 số có tổng bằng K). Loại bỏ phần tử trùng lặp: Dùng một con trỏ chạy để duyệt và một con trỏ giữ vị trí các phần tử "duy nhất". Điều này cực hữu ích khi bạn muốn lọc danh sách nhãn (labels) bị trùng trong code. 2. Kỹ thuật "Cửa sổ trượt" (Sliding Window) Đây là một biến thể của hai con trỏ dùng để xử lý các chuỗi con hoặc mảng con: Tìm chuỗi dài nhất có điều kiện: Ví dụ, tìm đoạn văn bản dài nhất không có từ nào lặp lại để tạo đoạn trích (Snippet) thông minh cho bài viết. Tính toán dữ liệu theo vùng: Tìm 3 bài viết liên tiếp có tổng lượt xem cao nhất để đưa vào mục "Tin nổi bật". 3. Đảo ngược dữ liệu (In-place processing) Thay vì tạo ra một mảng mới (gây tốn bộ nhớ), hai con trỏ giúp bạn xử lý trực tiếp trên dữ liệu gốc: Đảo ngược mảng/chuỗi: Một con trỏ ở đầu, một ở cuối, đổi chỗ cho nhau rồi tiến vào giữa. Kiểm tra chuỗi đối xứng (Palindrome): Kiểm tra xem một từ khóa hoặc một tiêu đề có đọc xuôi ngược giống nhau không. 4. Phát hiện vòng lặp (Fast & Slow Pointers) Hay còn gọi là thuật toán "Rùa và Thỏ". Một con trỏ nhảy 1 bước, một con trỏ nhảy 2 bước: Ứng dụng: Trong cấu trúc dữ liệu phức tạp liên kết với nhau, kỹ thuật này giúp kiểm tra xem có bị lỗi vòng lặp vô tận (infinite loop) khi tải dữ liệu từ API hay không.
Bước: 0 / 0

Nhật Ký Thực Thi


        

Mã Chương Trình (Two Pointers)


    

CÔNG VIỆC