Java Competitive Programming Template
A lightweight Java template containing the algorithms and helper methods that I frequently use during competitive programming and coding interviews.
Function
Description
add(a, b)
Modular addition
sub(a, b)
Modular subtraction
mul(a, b)
Modular multiplication
inv(a)
Modular inverse
div(a, b)
Modular division
Mth — Mathematical Utilities
Function
Description
gcd(a, b)
Greatest Common Divisor
lcm(a, b)
Least Common Multiple
pow(b, e, m)
Binary Exponentiation
prime(n)
Prime Check
sieve(n)
Sieve of Eratosthenes
Function
Description
lb(arr, x)
Lower Bound
ub(arr, x)
Upper Bound
pSum(arr)
Prefix Sum
sSum(arr)
Suffix Sum
pMin(arr)
Prefix Minimum
sMin(arr)
Suffix Minimum
pMax(arr)
Prefix Maximum
sMax(arr)
Suffix Maximum
pGcd(arr)
Prefix GCD
sGcd(arr)
Suffix GCD
Function
Description
nge(arr)
Next Greater Element
ngeIndex(arr)
Next Greater Element Index
Function
Description
ok(r,c,R,C)
Check valid cell
dfs(...)
Depth First Search
bfs(...)
Breadth First Search
Function
Description
swap()
Swap array elements
reverse()
Reverse array
max()
Maximum element
min()
Minimum element
print()
Print arrays