44. **What is recursion?**
A function that calls itself to solve smaller instances of a problem.
45. **What is Big O notation?**
A measure of an algorithm's efficiency in terms of time and space.
46. **How do I approach a new problem?**
Understand the problem, break it into smaller parts, and solve step by step.
47. **What is the difference between breadth-first search and depth-first search?**
BFS explores all neighbors first; DFS dives deep into one branch before backtracking.
48. **What is dynamic programming?**
A method of solving complex problems by breaking them into simpler sub-problems and reusing solutions.
49. **What is a binary search?**
A fast algorithm to find an item in a sorted array by repeatedly dividing the search space in half.
50. **What are design patterns?**
Reusable solutions to common problems in software design.