Pagination
Return the items for a given page and page size — the logic behind API pagination and infinite scroll. Items 1..10, page 2, page size 3.
Sample input
items = 1..10, page = 2, pageSize = 3
Sample output
4 5 6
Solution
items = list(range(1, 11))
page = 2
page_size = 3
start = (page - 1) * page_size
result = items[start:start + page_size]
print(*result)
const items = Array.from({ length: 10 }, (_, i) => i + 1);
const page = 2, pageSize = 3;
const start = (page - 1) * pageSize;
const result = items.slice(start, start + pageSize);
console.log(result.join(" "));
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int[] items = IntStream.rangeClosed(1, 10).toArray();
int page = 2, pageSize = 3;
int start = (page - 1) * pageSize;
System.out.println(IntStream.range(start, Math.min(start + pageSize, items.length))
.map(i -> items[i]).mapToObj(String::valueOf).collect(Collectors.joining(" ")));
}
}
fun main() {
val items = (1..10).toList()
val page = 2
val pageSize = 3
val start = (page - 1) * pageSize
val result = items.subList(start, minOf(start + pageSize, items.size))
println(result.joinToString(" "))
}
let items = Array(1...10)
let page = 2, pageSize = 3
let start = (page - 1) * pageSize
let end = min(start + pageSize, items.count)
let result = Array(items[start..<end])
print(result.map(String.init).joined(separator: " "))
void main() {
final items = List.generate(10, (i) => i + 1);
const page = 2, pageSize = 3;
final start = (page - 1) * pageSize;
final end = (start + pageSize).clamp(0, items.length);
final result = items.sublist(start, end);
print(result.join(' '));
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> items;
for (int i = 1; i <= 10; i++) items.push_back(i);
int page = 2, pageSize = 3;
int start = (page - 1) * pageSize;
int end = min(start + pageSize, (int) items.size());
bool first = true;
for (int i = start; i < end; i++) {
if (!first) cout << " ";
cout << items[i];
first = false;
}
cout << endl;
return 0;
}
#include <stdio.h>
int main() {
int items[10];
for (int i = 0; i < 10; i++) items[i] = i + 1;
int page = 2, pageSize = 3;
int start = (page - 1) * pageSize;
int end = start + pageSize;
if (end > 10) end = 10;
int first = 1;
for (int i = start; i < end; i++) {
if (!first) printf(" ");
printf("%d", items[i]);
first = 0;
}
printf("\n");
return 0;
}