Skip to content

unobatbayar/problem-solving

Repository files navigation

problem-solving

Solving programming problems

hackerrank leetcode codeforces codingbat

Master the Basics First

Before diving into complex problems, ensure you have a solid understanding of the basic building blocks of problem-solving, such as:

  • Data Structures: Arrays, linked lists, stacks, queues, trees, graphs, hash maps, heaps, tries, etc.
  • Algorithms: Sorting algorithms, searching algorithms (binary search, DFS, BFS), dynamic programming, greedy algorithms, backtracking, etc.
  • Time and Space Complexity: Learn Big-O notation and practice analyzing the time and space complexity of algorithms.

Approach

  1. Read the problem carefully.
  2. Understand the problem.
  3. Identify patterns.
  4. Think of a working solution.
  5. Execute the solution.
  6. Look back.