Facebook Pixel

How to Calculate Time Complexity in an Interview

A practical, step-by-step framework for quickly and accurately determining the Big O time complexity of your code during a high-pressure interview.

The Interview Guarantee

At the end of every whiteboarding or live coding session, the interviewer will ask: "What is the time and space complexity of your solution?" Stumbling here shows a lack of theoretical foundation. You need a fast, reliable framework to calculate Big O on the fly.

Step 1: Identify the Loops

Look purely at the loops in your code.

  • No loops (just math/if-statements): O(1)
  • One loop going from 0 to N: O(N)
  • Two separate loops back-to-back: O(N) + O(N) = O(N)

Step 2: Identify Nesting

Are the loops inside each other?

  • Nested loop (Outer runs N times, Inner runs N times): O(N * N) = O(N^2)
  • Triple nested loop: O(N^3)

Caution: Check the inner loop's dependency. If the inner loop only runs a constant 5 times, it is O(N * 5), which simplifies to O(N).

Step 3: Identify the Scaling Factor

Does the loop counter add/subtract, or multiply/divide?

  • i++ or i += 2: Linear scaling = O(N)
  • i *= 2 or i /= 2: Logarithmic scaling = O(log N)

Step 4: Identify Hidden Complexities

Do not ignore the methods you called! If you have a single for loop (O(N)), and inside it you call array.sort(), you must calculate the total. Sorting is O(N log N). Doing it inside a loop makes it O(N * N log N).

Step 5: Drop the Constants

Combine your terms. If your function sorts the array O(N log N), and then loops through it O(N), the raw math is O(N log N + N). Identify the dominant term. As N grows, N log N is far larger than N. Drop the non-dominant N. Final Answer: O(N log N).

The Takeaway

Don't guess the complexity. Trace the loops, multiply the nested ones, add the sequential ones, expose the hidden built-in methods, and drop the smaller terms. Practicing this 5-step framework will make Big O analysis second nature.

Identify all loops. Add sequential loops together. Multiply nested loops. Expose the complexity of built-in methods, and drop non-dominant terms and constants.

It is O(N) + O(N^2). Since N^2 is the dominant term that scales the fastest, the final time complexity is strictly O(N^2).

No, Big O calculates the worst-case scenario. Even if an if-statement breaks the loop on the first try, the algorithm is still classified as O(N).

If a loop iterates over Array A (size N) and a nested loop iterates over Array B (size M), the time complexity is O(N * M), not O(N^2).

Often no. Methods like array.splice(), string.indexOf(), or list.contains() execute hidden O(N) traversal loops under the hood.

Please Login.
Please Login.
Please Login.
Please Login.