Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Cursor-based pagination theo id

    Cursor-based pagination theo id

    Cursor pagination không dùng số trang mà dùng một con trỏ (cursor) — thường là id của phần tử cuối trang trước. Trang kế tiếp gồm các phần tử có id lớn hơn cursor.

    Cho danh sách bản ghi { "id":..., "name":... } (id duy nhất, không nhất thiết sắp xếp), một cursor (id) và limit. Hãy:

    1. Sắp xếp bản ghi theo id tăng dần.
    2. Lấy các bản ghi có id > cursor, tối đa limit phần tử.
    3. In object JSON { "items": [...], "nextCursor": <id cuối cùng lấy được hoặc null> }.

    Nếu cursor < 0 nghĩa là lấy từ đầu. Nếu không còn phần tử, nextCursor là null.

    Ví dụ

    Bản ghi id = [1,2,3,4], cursor=2, limit=2 → lấy id 3,4 → nextCursor=4.

    • Định dạng đầu vào:

      Dòng 1: JSON mảng bản ghi, mỗi bản ghi có khóa id (số) và name (chuỗi). Dòng 2: số nguyên cursor. Dòng 3: số nguyên limit.

    • Ràng buộc đầu vào:

      0 ≤ số bản ghi ≤ 1000; id là số nguyên duy nhất; 1 ≤ limit ≤ 1000; cursor là số nguyên.

    • Định dạng đầu ra:

      In object JSON { "items": [...], "nextCursor": ... }. items giữ nguyên cấu trúc bản ghi, đã sắp theo id tăng dần.

    Ví dụ:

    Đầu vào:

    [{"id":3,"name":"c"},{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":4,"name":"d"}]
    2
    2
    

    Đầu ra:

    {"items":[{"id":3,"name":"c"},{"id":4,"name":"d"}],"nextCursor":4}

    Giải thích:

    Sort theo id: 1,2,3,4. Lọc id>2 → 3,4. Lấy 2 phần tử. nextCursor=4.

    Đang tải editor...