747. 至少是其他数字两倍的最大数
在一个给定的数组nums中,总是存在一个最大元素 。
查找数组中的最大元素是否至少是数组中每个其他数字的两倍。
如果是,则返回最大元素的索引,否则返回-1。
class Solution(object):
def dominantIndex(self, nums):
m = max(nums)
if all(m >= 2*x for x in nums if x != m):
return nums.index(m)
return -1
先找出最大值,然后判断最大值是否大于其他值的两倍。还可以排序,速度会慢点。44ms,13.6MB
746. 使用最小花费爬楼梯
class Solution:
def minCostClimbingStairs(self, cost: List[int]) -> int:
n = len(cost)
minCost = [0] * n
minCost[1] = min(cost[0], cost[1])
for i in range(2, n):
minCost[i] = min(minCost[i - 1] + cost[i], minCost[i - 2] + cost[i - 1])
return minCost[-1]
自底向上的动态规划,64ms, 13.9MB