网站备案证书怎么下载不了,大连网站公司设计,如何制作淘客导购网站,wordpress的设置网址134 加油站
在一条环路上有 N 个加油站#xff0c;其中第 i 个加油站有汽油 gas[i] 升。
你有一辆油箱容量无限的的汽车#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发#xff0c;开始时油箱为空。
如果你可以绕环路行…134 加油站
在一条环路上有 N 个加油站其中第 i 个加油站有汽油 gas[i] 升。
你有一辆油箱容量无限的的汽车从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发开始时油箱为空。
如果你可以绕环路行驶一周则返回出发时加油站的编号否则返回 -1。 class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) - int:for i in range(len(cost)):rest gas[i] - cost[i] # 记录剩余油量index (i 1) % len(cost) # 下一个加油站的索引while rest 0 and index ! i: # 模拟以i为起点行驶一圈如果有rest0那么答案就不唯一了rest gas[index] - cost[index] # 更新剩余油量index (index 1) % len(cost) # 更新下一个加油站的索引if rest 0 and index i: # 如果以i为起点跑一圈剩余油量0并且回到起始位置return i # 返回起始位置ireturn -1 # 所有起始位置都无法环绕一圈返回-1135 分发糖果
老师想给孩子们分发糖果有 N 个孩子站成了一条直线老师会根据每个孩子的表现预先给他们评分。
你需要按照以下要求帮助老师给这些孩子分发糖果
每个孩子至少分配到 1 个糖果。 相邻的孩子中评分高的孩子必须获得更多的糖果。 那么这样下来老师至少需要准备多少颗糖果呢
class Solution:def candy(self, ratings: List[int]) - int:candyVec [1] * len(ratings)# 从前向后遍历处理右侧比左侧评分高的情况for i in range(1, len(ratings)):if ratings[i] ratings[i - 1]:candyVec[i] candyVec[i - 1] 1# 从后向前遍历处理左侧比右侧评分高的情况for i in range(len(ratings) - 2, -1, -1):if ratings[i] ratings[i 1]:candyVec[i] max(candyVec[i], candyVec[i 1] 1)# 统计结果result sum(candyVec)return result
860 柠檬水找零
在柠檬水摊上每一杯柠檬水的售价为 5 美元。
顾客排队购买你的产品按账单 bills 支付的顺序一次购买一杯。
每位顾客只买一杯柠檬水然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零也就是说净交易是每位顾客向你支付 5 美元。
注意一开始你手头没有任何零钱。
如果你能给每位顾客正确找零返回 true 否则返回 false 。
class Solution:def lemonadeChange(self, bills: List[int]) - bool:five 0ten 0twenty 0for bill in bills:# 情况一收到5美元if bill 5:five 1# 情况二收到10美元if bill 10:if five 0:return Falseten 1five - 1# 情况三收到20美元if bill 20:# 先尝试使用10美元和5美元找零if five 0 and ten 0:five - 1ten - 1#twenty 1# 如果无法使用10美元找零则尝试使用三张5美元找零elif five 3:five - 3#twenty 1else:return Falsereturn True406 根据身高重建队列
假设有打乱顺序的一群人站成一个队列数组 people 表示队列中一些人的属性不一定按顺序。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi 前面 正好 有 ki 个身高大于或等于 hi 的人。
请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue 其中 queue[j] [hj, kj] 是队列中第 j 个人的属性queue[0] 是排在队列前面的人。
class Solution:def reconstructQueue(self, people: List[List[int]]) - List[List[int]]:# 先按照h维度的身高顺序从高到低排序。确定第一个维度# lambda返回的是一个元组当-x[0](维度h相同时再根据x[1]维度k从小到大排序people.sort(keylambda x: (-x[0], x[1]))que []# 根据每个元素的第二个维度k贪心算法进行插入# people已经排序过了同一高度时k值小的排前面。for p in people:que.insert(p[1], p)return que