At university programming questions in algorithms and data structures classes usually give you an upper bound time complexity in Big-O notation to achieve full marks.

Programming questions on CodeForces, LeetCode and HackerRank don’t usually provide an upper bounds in Big-O notation but instead provide

- an
**input size**of the type $$1 \leq n \leq 10^5$$ - and a
**time limit**in seconds (usually 1 or 2 seconds).

It’s then up to you to find out what an appropriate run time for your algorithm would be. For example, you might get:

- 60% of the points for passing test cases in 2 seconds for input sizes $$1 \leq n \leq 10^3$$
- and 100% of the points for passing test cases in 2 seconds for input sizes $$1 \leq n \leq 10^5$$

## In Practice

The user MaxiMaxi shared a very useful table from the Competitive Programming 3 book (by Steven Halim from NUS) on the CodeForces forum.

*How do I use this?*

- check the input size in the problem statement e.g. $$1 \leq n \leq 10^5 = 100000$$
- check the table for the worst case runtime in big-O notation e.g. $$O(n\log_2n)$$
- chose your algorithm accordingly