leetcode贪心
文章平均质量分 66
岗岗ganggang
这个作者很懒,什么都没留下…
展开
-
leetcode 1642. 可以到达的最远建筑python
题目描述:题解:思路:先全部使用梯子,如果梯子不够用了,则将高度差最短的位置换为砖头。1.设置一个最小堆gaps记录两个相邻位置的高度差。2.从下标为0的位置开始,如果当前位置高于或等于下一个位置,则直接下移到下一个位置,否则计算两个位置之间的高度差加入gaps。3.如果gaps中元素的数量大于ladders,说明此时梯子已经用完,从gaps中取出一个最小值,替换为砖头,如果砖头也被用完,则返回当前位置。class Solution: def furthestBui原创 2021-12-16 17:15:02 · 376 阅读 · 0 评论 -
leetcode122. 买卖股票的时机 II python
题目描述:题解一:贪心参考情况一:一直增长:[1,2,3,4,5] result=2-1+3-2+4-3+5-4=4 与第一天买入,最后一天卖出相同。情况二:一直下降:利润为0, 不存在一个i,prices[i]>prices[i-1]情况三:先增长再下降:[a b c] a-b增长,b-c下降,a-b段prices[i]-prices[i-1]的和与b-a相等。情况四:先下降再增长:[a b c] a-b下降,b-c增长,b-c段prices[..原创 2021-12-08 20:15:22 · 439 阅读 · 0 评论 -
leetcode 670. 最大交换 python
题目描述:题解:贪心1.将输入的整数num转为字符串形式num_str。2.从num_str第一个位置开始,对每个位置i,判断其之后的位置有没有比num_str[i]大的字符greater_num,如果有则记录位置greater_pos(如果有多个相等的greater_num),则取最后一个位置的。3.因为只交换一次,如果找到了一个比num_str[i]大的值,则停止继续搜索,构造一个新的字符串result,依次向其中添加字符,将num_str[i]与num_str[greater_p.原创 2021-11-17 20:50:34 · 466 阅读 · 0 评论 -
leetcode134. 加油站
题目描述:题解:1.在一个for中对每个位置进行一次判断,如果满足环形行驶一周,则返回该位置编号,如果每个位置都不满足,则返回-12.对每个位置i进行判断时,total_gas记录总优量,初始为gas[i]-cost[i],开始向下环形行驶(j从1到总长度,下一个位置station_number由(i+j)%总长确定),total_gas更新为total_gas=total_gas+gas[station_number]-cost[station_number],如果所有情况下的tot.原创 2021-07-14 14:52:31 · 190 阅读 · 0 评论 -
leetcode45. 跳跃游戏 II
题目描述:题解:采用贪心的思想解决:先从输入数组nums的最后一位开始,将start初始化为len(nums)-1,向前搜索,判断每个位置i的nums[i]即可以跳跃的最大长度是否大于start-i的距离,如果满足nums[i]>=start-i的条件,则将start-nums[i]记录为maxdis,不断对maxdis进行更新,将具有最大maxdis的位置i设为下一次的start,直到start=0即到达了初始位置,返回步数steps即从最后一个位置开始向前跳跃,每次选择可以跳跃原创 2021-07-14 11:21:22 · 86 阅读 · 0 评论