Solving Problems With Ease

Know these five things

11/November 2020 Arianna Choza

I've gained a significant amount of confidence of the last two months. I can attribute it to endless hours studying. But more specefically, learning the following principles and techniques.

  • 1. Problem Focal Points
  • 2. Prolem Solveing Patterns
  • 3. Helper Functions
  • 4. Data Structures
  • 5. Algorithms
  • Problem Focal Points

Understanding the problem focal point is key. What is the question really asking? Find anything? Find ALL THE THINGS the meet the criteria; the FIRST thing? Find the MAXIMUM or HIGHEST thing; the LEAST or MINIMUM? Be certain you truly undstand before anything else and orient yourself to that ask specefically. When you are unclear on what to focus on, you will run into trouble likely return the wrong thing. Maybe the whole array, when really they only want the first element; or the element value, when the problem is asking for the index.

  • Prolem Solveing Patterns

These patterns or strategies can be used to help solve your current problem. After reading the question, it might take a bit to wrap your head around it. Try this approuch: Ask yourself, can this question be solved by one of the common problem solving pattern? IF you can identify that the problem is a slightly obscure version or divide and conquere, then suddenly you've got your strategy all worked out. From there try a brute force attempt and then see if you can use a more complex algorithm to bring down your Big O Time Complexity.


  • Frequency Counter

  • Multiple Pointers

  • Sliding Window

  • Divide and Conquer


  • Swap

  • Merge

  • Pivot

  • Creat Hash Map

  • Helper Functions

A few functions used constantly. Following the single responsibility rule, it makes sense to pull them out as their own self-contained functions. Generally after a conditional you'll be needing to use one of the following:

  • Data Structures
  • Link Lists
  • Hash Maps
  • Stacks
  • Queues
  • Graphs
  • Trees
  • Tries
  • Algorithms
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Radix Sort
  • Quick Sort
  • Counting Sort
  • Heap Sort