βData Structures - Essential Guide
In this post, we will explore some fundamental data structures that are crucial for efficient programming. Understanding these data structures is essential for solving complex problems effectively.
1. Arrays:
β’ Description: A collection of elements identified by index or key.
β’ Time Complexity:
β Access: O(1)
β Search: O(n)
β Insertion/Deletion: O(n)
β’ Use Cases: Storing a fixed-size sequential collection of elements.
2. Linked Lists:
β’ Description: A linear collection of data elements, where each element points to the next, allowing for efficient insertion and deletion.
β’ Types:
β Singly Linked List
β Doubly Linked List
β Circular Linked List
β’ Time Complexity:
β Access: O(n)
β Search: O(n)
β Insertion/Deletion: O(1) (at the head)
β’ Use Cases: Dynamic memory allocation, implementing stacks and queues.
3. Stacks:
β’ Description: A collection of elements that follows the Last In First Out (LIFO) principle.
β’ Operations:
β Push: Add an item to the top.
β Pop: Remove the item from the top.
β Peek: View the top item without removing it.
β’ Time Complexity:
β All operations: O(1)
β’ Use Cases: Function call management, expression parsing, backtracking algorithms.
4. Queues:
β’ Description: A collection of elements that follows the First In First Out (FIFO) principle.
β’ Operations:
β Enqueue: Add an item to the back.
β Dequeue: Remove an item from the front.
β’ Time Complexity:
β All operations: O(1)
β’ Use Cases: Scheduling tasks, breadth-first search in graphs.
5. Hash Tables:
β’ Description: A data structure that implements an associative array, a structure that can map keys to values.
β’ Time Complexity:
β Average case for Search, Insert, Delete: O(1)
β Worst case (when collisions occur): O(n)
β’ Use Cases: Implementing dictionaries, caching data.
6. Trees:
β’ Description: A hierarchical structure with nodes connected by edges. The top node is called the root, and each node may have child nodes.
β’ Types:
β Binary Tree
β Binary Search Tree (BST)
β AVL Tree
β Red-Black Tree
β’ Time Complexity:
β Search/Insert/Delete in a balanced BST: O(log n)
β’ Use Cases: Representing hierarchical data, implementing search algorithms.
7. Graphs:
β’ Description: A collection of nodes (vertices) connected by edges. Graphs can be directed or undirected.
β’ Representation Methods:
β Adjacency Matrix
β Adjacency List
β’ Time Complexity:
β Varies depending on the algorithm used (e.g., DFS, BFS).
β’ Use Cases: Social networks, routing algorithms.
In this post, we will explore some fundamental data structures that are crucial for efficient programming. Understanding these data structures is essential for solving complex problems effectively.
1. Arrays:
β’ Description: A collection of elements identified by index or key.
β’ Time Complexity:
β Access: O(1)
β Search: O(n)
β Insertion/Deletion: O(n)
β’ Use Cases: Storing a fixed-size sequential collection of elements.
2. Linked Lists:
β’ Description: A linear collection of data elements, where each element points to the next, allowing for efficient insertion and deletion.
β’ Types:
β Singly Linked List
β Doubly Linked List
β Circular Linked List
β’ Time Complexity:
β Access: O(n)
β Search: O(n)
β Insertion/Deletion: O(1) (at the head)
β’ Use Cases: Dynamic memory allocation, implementing stacks and queues.
3. Stacks:
β’ Description: A collection of elements that follows the Last In First Out (LIFO) principle.
β’ Operations:
β Push: Add an item to the top.
β Pop: Remove the item from the top.
β Peek: View the top item without removing it.
β’ Time Complexity:
β All operations: O(1)
β’ Use Cases: Function call management, expression parsing, backtracking algorithms.
4. Queues:
β’ Description: A collection of elements that follows the First In First Out (FIFO) principle.
β’ Operations:
β Enqueue: Add an item to the back.
β Dequeue: Remove an item from the front.
β’ Time Complexity:
β All operations: O(1)
β’ Use Cases: Scheduling tasks, breadth-first search in graphs.
5. Hash Tables:
β’ Description: A data structure that implements an associative array, a structure that can map keys to values.
β’ Time Complexity:
β Average case for Search, Insert, Delete: O(1)
β Worst case (when collisions occur): O(n)
β’ Use Cases: Implementing dictionaries, caching data.
6. Trees:
β’ Description: A hierarchical structure with nodes connected by edges. The top node is called the root, and each node may have child nodes.
β’ Types:
β Binary Tree
β Binary Search Tree (BST)
β AVL Tree
β Red-Black Tree
β’ Time Complexity:
β Search/Insert/Delete in a balanced BST: O(log n)
β’ Use Cases: Representing hierarchical data, implementing search algorithms.
7. Graphs:
β’ Description: A collection of nodes (vertices) connected by edges. Graphs can be directed or undirected.
β’ Representation Methods:
β Adjacency Matrix
β Adjacency List
β’ Time Complexity:
β Varies depending on the algorithm used (e.g., DFS, BFS).
β’ Use Cases: Social networks, routing algorithms.
JavaScript Coding Interview Questions
Easy
1. Find the second smallest number in an array.
2. Reverse the order of words in a sentence.
3. Check whether a string starts and ends with the same character.
4. Find the average of numbers in an array.
5. Find all numbers that appear more than once in an array.
6. Replace every space in a string with a hyphen.
7. Find the longest common prefix among an array of strings.
8. Check whether an array is sorted in ascending order.
9. Find the index of the first occurrence of a given value without using indexOf().
10. Separate even and odd numbers into two arrays.
11. Find the difference between the largest and smallest values in an array.
12. Remove a specific element from an array without using filter().
13. Convert an array of numbers into an array of their squares.
14. Find the number of words in a sentence.
15. Swap two variables without using a temporary variable.
Medium
16. Implement a function that converts a nested object into a flat object.
17. Create a function that groups an array of objects by multiple properties.
18. Implement a function that removes duplicate objects from an array based on a property.
19. Write a function that compares two arrays regardless of their order.
20. Implement a custom version of Array.prototype.find().
21. Implement a custom version of Array.prototype.some().
22. Implement a custom version of Array.prototype.every().
23. Create a function that splits an array into chunks of a given size.
24. Implement a function that shuffles an array fairly.
25. Create a countdown timer using setInterval().
26. Implement a timeout wrapper for a Promise.
27. Write a function that caches the result of asynchronous operations.
28. Create a function that executes asynchronous tasks sequentially.
29. Implement a simple rate limiter for function calls.
30. Write a function that waits for multiple Promises but returns only the successful results.
31. Implement a custom deep-equality function for JavaScript objects.
32. Create a function that detects whether two strings are rotations of each other.
33. Implement a function that converts a JavaScript object into FormData.
34. Create a search function that filters and ranks objects based on a user's query.
Hard
35. Implement a simplified version of Promise.any().
36. Build a priority queue using JavaScript classes.
37. Implement a trie data structure for autocomplete.
38. Build a dependency resolver that determines the correct execution order of tasks.
39. Implement a simplified JavaScript module system with import and export behavior.
40. Build a worker pool that limits how many asynchronous tasks can run at the same time.
Easy
1. Find the second smallest number in an array.
2. Reverse the order of words in a sentence.
3. Check whether a string starts and ends with the same character.
4. Find the average of numbers in an array.
5. Find all numbers that appear more than once in an array.
6. Replace every space in a string with a hyphen.
7. Find the longest common prefix among an array of strings.
8. Check whether an array is sorted in ascending order.
9. Find the index of the first occurrence of a given value without using indexOf().
10. Separate even and odd numbers into two arrays.
11. Find the difference between the largest and smallest values in an array.
12. Remove a specific element from an array without using filter().
13. Convert an array of numbers into an array of their squares.
14. Find the number of words in a sentence.
15. Swap two variables without using a temporary variable.
Medium
16. Implement a function that converts a nested object into a flat object.
17. Create a function that groups an array of objects by multiple properties.
18. Implement a function that removes duplicate objects from an array based on a property.
19. Write a function that compares two arrays regardless of their order.
20. Implement a custom version of Array.prototype.find().
21. Implement a custom version of Array.prototype.some().
22. Implement a custom version of Array.prototype.every().
23. Create a function that splits an array into chunks of a given size.
24. Implement a function that shuffles an array fairly.
25. Create a countdown timer using setInterval().
26. Implement a timeout wrapper for a Promise.
27. Write a function that caches the result of asynchronous operations.
28. Create a function that executes asynchronous tasks sequentially.
29. Implement a simple rate limiter for function calls.
30. Write a function that waits for multiple Promises but returns only the successful results.
31. Implement a custom deep-equality function for JavaScript objects.
32. Create a function that detects whether two strings are rotations of each other.
33. Implement a function that converts a JavaScript object into FormData.
34. Create a search function that filters and ranks objects based on a user's query.
Hard
35. Implement a simplified version of Promise.any().
36. Build a priority queue using JavaScript classes.
37. Implement a trie data structure for autocomplete.
38. Build a dependency resolver that determines the correct execution order of tasks.
39. Implement a simplified JavaScript module system with import and export behavior.
40. Build a worker pool that limits how many asynchronous tasks can run at the same time.
β€1
Top 10 coding interview questions.pdf
1004.9 KB
Top 10 Coding Interview Questions
If youβre a fresher and youβre in 3rd/4th year but still donβt know coding, donβt start with LeetCode Hard.
Get these questions down first. A lot of service-based companies test these basic coding problems in fresher interviews:
1. Reverse a string without using a built-in reverse function
2. Check whether a string or number is a palindrome
3. Find the largest and smallest element in an array
4. Find duplicate elements in an array
5. Find the second-largest element without sorting
6. Check whether a number is prime
7. Print the first N Fibonacci numbers
8. Find factorial using recursion
9. Check whether two strings are anagrams
10. Count the frequency of each character in a string
11. Find the missing number from 1 to N
12. Find two numbers whose sum equals a target
You donβt need to know everything.
Try to solve these confidently first.
Get these questions down first. A lot of service-based companies test these basic coding problems in fresher interviews:
1. Reverse a string without using a built-in reverse function
2. Check whether a string or number is a palindrome
3. Find the largest and smallest element in an array
4. Find duplicate elements in an array
5. Find the second-largest element without sorting
6. Check whether a number is prime
7. Print the first N Fibonacci numbers
8. Find factorial using recursion
9. Check whether two strings are anagrams
10. Count the frequency of each character in a string
11. Find the missing number from 1 to N
12. Find two numbers whose sum equals a target
You donβt need to know everything.
Try to solve these confidently first.
π₯ SQL Interview Case Studies (Advanced Business Scenarios)
π§ Case Study 1: Find Repeat Customers
π Orders Table
order_id customer_id
1 101
2 102
3 101
β Business Question
Find customers who placed more than 1 order.
β Solution
SELECT customer_id,
COUNT(*) AS total_orders
FROM orders
GROUP BY customer_id
HAVING COUNT(*) > 1;
π§ Case Study 2: Highest Paid Employee Per Department
β Business Question
Find highest paid employee in every department.
β Solution
WITH RankedEmployees AS (
SELECT *,
ROW_NUMBER() OVER(
PARTITION BY department
ORDER BY salary DESC
) rn
FROM employees
)
SELECT *
FROM RankedEmployees
WHERE rn = 1;
π§ Case Study 3: Find Inactive Customers
β Business Question
Customers who haven't ordered in the last 6 months.
β Solution
SELECT c.customer_id,
c.name
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.name
HAVING MAX(o.order_date) <
DATE_SUB(CURDATE(), INTERVAL 6 MONTH);
π§ Case Study 4: Product Generating Highest Revenue
π Sales Table
product_id amount
β Solution
SELECT product_id,
SUM(amount) AS revenue
FROM sales
GROUP BY product_id
ORDER BY revenue DESC
LIMIT 1;
π§ Case Study 5: Employee Salary Above Department Average
β Solution
WITH DeptAvg AS (
SELECT department,
AVG(salary) avg_salary
FROM employees
GROUP BY department
)
SELECT e.*
FROM employees e
JOIN DeptAvg d
ON e.department = d.department
WHERE e.salary > d.avg_salary;
π§ Case Study 6: Running Total Sales
β Business Question
Calculate cumulative sales.
β Solution
SELECT order_date,
amount,
SUM(amount) OVER(
ORDER BY order_date
) AS running_total
FROM sales;
π§ Case Study 7: Top 3 Products Per Category
β Solution
WITH RankedProducts AS (
SELECT *,
ROW_NUMBER() OVER(
PARTITION BY category
ORDER BY sales DESC
) rn
FROM products
)
SELECT *
FROM RankedProducts
WHERE rn <= 3;
π― Practice Tasks
1οΈβ£ Find customer with highest number of orders
2οΈβ£ Find lowest salary employee per department
3οΈβ£ Find products never sold
4οΈβ£ Find departments with average salary > company average
5οΈβ£ Find month with lowest sales
β‘οΈ Mini Challenge π₯
Banking Scenario
Tables:
Accounts
account_id customer_name
Transactions
transaction_id account_id amount transaction_date
Question
π Find the top 3 customers with highest total transaction amount in the last 1 year.
π₯ Interview Tip
When solving case studies:
1οΈβ£ Understand business question
2οΈβ£ Identify tables
3οΈβ£ Identify JOINs
4οΈβ£ Identify Aggregations
5οΈβ£ Decide whether Window Function is needed
π§ Case Study 1: Find Repeat Customers
π Orders Table
order_id customer_id
1 101
2 102
3 101
β Business Question
Find customers who placed more than 1 order.
β Solution
SELECT customer_id,
COUNT(*) AS total_orders
FROM orders
GROUP BY customer_id
HAVING COUNT(*) > 1;
π§ Case Study 2: Highest Paid Employee Per Department
β Business Question
Find highest paid employee in every department.
β Solution
WITH RankedEmployees AS (
SELECT *,
ROW_NUMBER() OVER(
PARTITION BY department
ORDER BY salary DESC
) rn
FROM employees
)
SELECT *
FROM RankedEmployees
WHERE rn = 1;
π§ Case Study 3: Find Inactive Customers
β Business Question
Customers who haven't ordered in the last 6 months.
β Solution
SELECT c.customer_id,
c.name
FROM customers c
LEFT JOIN orders o
ON c.customer_id = o.customer_id
GROUP BY c.customer_id, c.name
HAVING MAX(o.order_date) <
DATE_SUB(CURDATE(), INTERVAL 6 MONTH);
π§ Case Study 4: Product Generating Highest Revenue
π Sales Table
product_id amount
β Solution
SELECT product_id,
SUM(amount) AS revenue
FROM sales
GROUP BY product_id
ORDER BY revenue DESC
LIMIT 1;
π§ Case Study 5: Employee Salary Above Department Average
β Solution
WITH DeptAvg AS (
SELECT department,
AVG(salary) avg_salary
FROM employees
GROUP BY department
)
SELECT e.*
FROM employees e
JOIN DeptAvg d
ON e.department = d.department
WHERE e.salary > d.avg_salary;
π§ Case Study 6: Running Total Sales
β Business Question
Calculate cumulative sales.
β Solution
SELECT order_date,
amount,
SUM(amount) OVER(
ORDER BY order_date
) AS running_total
FROM sales;
π§ Case Study 7: Top 3 Products Per Category
β Solution
WITH RankedProducts AS (
SELECT *,
ROW_NUMBER() OVER(
PARTITION BY category
ORDER BY sales DESC
) rn
FROM products
)
SELECT *
FROM RankedProducts
WHERE rn <= 3;
π― Practice Tasks
1οΈβ£ Find customer with highest number of orders
2οΈβ£ Find lowest salary employee per department
3οΈβ£ Find products never sold
4οΈβ£ Find departments with average salary > company average
5οΈβ£ Find month with lowest sales
β‘οΈ Mini Challenge π₯
Banking Scenario
Tables:
Accounts
account_id customer_name
Transactions
transaction_id account_id amount transaction_date
Question
π Find the top 3 customers with highest total transaction amount in the last 1 year.
π₯ Interview Tip
When solving case studies:
1οΈβ£ Understand business question
2οΈβ£ Identify tables
3οΈβ£ Identify JOINs
4οΈβ£ Identify Aggregations
5οΈβ£ Decide whether Window Function is needed
JavaScript Interview Questions
These are some of the most important JavaScript interview questions every developer should know, from closures and hoisting to promises, async/await, CORS, debouncing, throttling, and more.
These are some of the most important JavaScript interview questions every developer should know, from closures and hoisting to promises, async/await, CORS, debouncing, throttling, and more.