746. 使用最小花费爬楼梯
  • java

dp动态规划

class Solution {public int minCostClimbingStairs(int[] cost) {int n = cost.length;int[] d = new int[n + 1];d[0] = d[1] = 0;for (int i = 2; i < n + 1; ++i) {d[i] = Math.min(d[i - 1] + cost[i - 1], d[i - 2] + cost[i - 2]);}return d[n]; }
}

使用滚动数组将空间复杂度从O(n)降到O(1)

class Solution {public int minCostClimbingStairs(int[] cost) {int n = cost.length;int pre = 0, cur = 0;for (int i = 2; i < n + 1; ++i) {int next = Math.min(cur + cost[i - 1], pre + cost[i - 2]);pre = cur;cur = next;}return cur; }
}

注意数组的长度用.length获取
String的长度用.length()获取