By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
Window: Placement coding tests • Online judges • Tech screens | Components: DS&A • Implementation • Complexity/Debugging • SQL/OOP basics
Must-do topics (80/20)
Top traps (avoid)
Time split (prep & test)
Last-48h checklist
Quick frames & facts (carry card)
Speed tactics (during test)
Exam-day mini-plan
Practice cycle (weekly)
Micro-templates (pseudocode)
Binary search (on answer)
lo, hi = min_possible, max_possible
while lo < hi:
mid = (lo+hi)//2
if feasible(mid): hi = mid
else: lo = mid+1
return lo
Sliding window (validity)
l=0; for r in range(n):
add(a[r])
while not valid(): remove(a[l]); l+=1
update_best(l,r)
BFS (shortest steps, unweighted)
q=[s]; dist[s]=0
while q: u=q.pop(0) # use deque
for v in adj[u]:
if dist[v] unvisited: dist[v]=dist[u]+1; q.push(v)
Dijkstra (non-negative weights)
pq=[(0,s)]; dist[*]=INF; dist[s]=0
while pq:
d,u = heappop(pq)
if d>dist[u]: continue
for v,w in adj[u]:
if d+w < dist[v]: dist[v]=d+w; heappush(pq,(dist[v],v))
DSU (Union-Find)
find(x): parent[x]= (x if parent[x]==x else find(parent[x]))
union(a,b): ra=find(a); rb=find(b)
if ra!=rb: attach smaller rank under larger; update rank
DP coin change (min coins, unbounded)
dp[0]=0; dp[1..S]=INF
for c in coins:
for s in c..S:
dp[s]=min(dp[s], dp[s-c]+1)
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.