cswork / libraryOpen practice workspace

Coding questions · Coinbase

Implement basic pagination for a list

This question evaluates a candidate's competence in array indexing, boundary-condition handling, and simple pagination logic, focusing on correct subarray extraction and off-by-one considerations within given size constraints.

You are given:

  • A zero-indexed array of items items (you can assume it fits in memory).
  • An integer pageSize > 0.

Design and implement a pagination helper that supports the following operations:

  1. Initialize the paginator with the array and pageSize.
  2. Given a page number pageIndex (0-based), return the subarray of items that belongs to that page.
    • Page 0 contains items with indices [0, pageSize - 1] (if they exist),
    • Page 1 contains [pageSize, 2 * pageSize - 1], and so on.
  3. If pageIndex is out of range (no items on that page), return an empty list.

Assume:

  • 0 <= pageIndex
  • 1 <= pageSize <= 10^5
  • 0 <= len(items) <= 10^6

Define the interface and implement the core method(s) for pagination. Focus on clean indexing and handling boundary cases correctly.

Basic Pagination Helper

Examples

Example 1

Input: ([1,2,3,4,5], 2, 0)
Output: [1, 2]

Explanation: First page.

Example 2

Input: ([1,2,3,4,5], 2, 2)
Output: [5]

Explanation: Partial final page.

Hints

  1. Use deterministic tie-breaking for prompts with multiple valid outputs.
  2. For design-style APIs, simulate operations with explicit inputs.