What is the Time Complexity of my algorithim? : This algorithm was written for LeetCode's climbing stairs problem and it ran at 20ms. I believe the time complexity is O(n), because this link https://towardsdatascience.com/understanding-time-complexity-with-python-examples-2bda6e8158a7 said O(n) is when the running time increases linearly as the size of the input gets bigger, which is what I think is going on here. I was wondering if someone could explain to me the the time complexity here and why it would be that. Any additional info on how I could get it to linear time if I'm not there already would help too.

Here is my code:
```
class Solution:
    def climbStairs(self, n: int) -> int:
        #n is the step I need to reach
        cells = n
        if cells == 0: return 1

        else:
            result = []

            for i in range(0, 1*cells + 1):
                result.append(i)
                if result[i] == 0:
                    result[i] = 1
                else:
                    if result[i] > 1:
                        result[i] = result[i-1] + result[i-2]

            return result[-1]
```