Algorithmic Problem Solving Fundamentals Questions
Core foundation for solving entry level algorithmic problems. Focuses on arrays, strings, basic mathematics and number theory problems, simple bit manipulation, basic linked list and tree operations, stacks and queues, basic sorting and searching algorithms, simple recursion, and use of hash based data structures for counting and lookup. Emphasizes understanding asymptotic time and space complexity, selecting appropriate data structures for a task, and clear step by step problem solving including writing a brute force solution and analyzing correctness.
EasyTechnical
0 practiced
Given a string s, return the index of the first non-repeating character in it. If it does not exist, return -1. Implement in Python or Java in O(n) time and discuss space trade-offs. Examples: 'leetcode' -> 0, 'loveleetcode' -> 2. Also describe a streaming variant where characters arrive one by one.
HardTechnical
0 practiced
Given strings s and t, return the minimum window in s which will contain all the characters in t. If no such window exists, return an empty string. Implement the optimized sliding-window solution in Python using hash maps to track counts and discuss time complexity. Example: s = 'ADOBECODEBANC', t = 'ABC' -> 'BANC'.
HardTechnical
0 practiced
Given a collection of numbers that might contain duplicates, return all possible unique permutations. Implement in Python using backtracking and pruning to avoid duplicate permutations. Explain why sorting the input helps and discuss time/space complexity for generating all unique permutations.
EasyTechnical
0 practiced
Given a string containing parentheses characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. A string is valid if brackets are closed in the correct order and match types. Implement in Java or Python and analyze time/space complexity. Examples: '()[]{}' -> true, '(]' -> false.
MediumTechnical
0 practiced
Given an array of k sorted linked lists, merge them into one sorted linked list and return its head. Implement in Java or Python using a min-heap (priority queue) with expected O(N log k) runtime where N is total number of nodes. Explain memory usage and compare to divide-and-conquer merging.
Unlock Full Question Bank
Get access to hundreds of Algorithmic Problem Solving Fundamentals interview questions and detailed answers.
Sign in to ContinueJoin thousands of developers preparing for their dream job.