### Interview - Maxine Yee
> You are given an array of integers `cost` where `cost[i]` is the cost at the `ith` step on a staircase. Starting at either index `0` OR `1`, you can either climb one or two steps each time. Return the minimum cost to reach the end of the staircase.
Note: You pay the cost at the current step only when moving to the next (i.e. don't need to pay the cost at the last step) — can also ignore this point for simplicity.
Examples:
`Input: cost = [10,15]`
`Output: 10`
`Explanation: Start at 10, take 2 steps, reach the top, pay 10.`
`Input: cost = [10,20,15]`
`Output: 20`
`Explanation: Start at 20, take 2 steps, reach the top, pay 20.`
`Input: cost = [1,100,1,1,_1_,100,1,1,100,1]`
`Output: 6`
`Explanation: Start at 1, take 2 steps, pay 1, take 2 steps, pay 1, take 2 steps, pay 1, take 1 step, pay 1, take 2 steps, pay 1, take 1 step, reach the top, pay 1.`
```javascript=
const minCost = (int[] cost) => {
return Math.min(minCostFrom(0), minCostFrom(1));
}
```
```javascript=
const minCostFrom = (int[] cost, int startIndex) => {
if (startIndex >= cost.length) {
return 0;
}
const 1stepCost = minCostFrom(cost, startIndex + 1) + cost[startIndex];
const 2stepCost = minCostFrom(cost, startIndex + 2) + cost[startIndex];
return Math.min(1stepCost, 2stepCost);
}
```