
贪心算法
文章平均质量分 51
无乎648
有头发的计算机在校大学生
展开
-
贪心算法例题(五)
贪心算法例题(五)最优加油方法题目描述:已知一条公路上,有一个起点与一个终点,这之间有n个加油站;已知从这n个加油站到终点的距离d与各个加油站可以加油的量 l,起点位置至终点的距离L与起始时刻油箱中汽油量P;假设使用1个单位的汽油即走一个单位的距离,油箱没有上线,最少加几次油,可以从起点开至终点?(如果无法到达,返回-1)思考:汽车经过n个加油站,对于这n个加油站,应该在哪个加油站停下来加油,最终既能到达终点,又使加油次数最少?若按顺序遍历加油站,则面临:如果在某个加油站停下来加油,可能是没有原创 2020-08-20 08:58:12 · 640 阅读 · 0 评论 -
贪心算法例题(四)
贪心算法例题(四)贪心算法-跳跃游戏二给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。你的目标是到达最后一个下标,并且使用最少的跳跃次数。例如:A=[2,3,1,1,4],到达最后一个下标的最少跳跃次数为 2。(先跳跃 1 步,从下标 0 到 1,然后跳跃 3 步,到达最后一个下标。一共两次)输入格式第一行输入一个正整数 n(1≤n≤100) ,接下来的一行,输入 n 个整数,表示数组 A。输出格式最后输出最少的跳跃次数。样例原创 2020-08-20 08:55:15 · 451 阅读 · 0 评论 -
贪心算法例题(三)
贪心算法例题(三)贪心算法-跳跃游戏——a1、题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断是否能够到达最后一个位置。2、问题分析 给定一个数组,数组中每个位置的数字代表当前位置i能够向前跳跃num[i]的距离,然后判断最后能够从第一个位置跳到最后一个位置。这道题的难点就在于每次跳多远的距离算合适呢?如果从i的位置能跳num[i]距离最远能到达j的位置,那么这中间的任何一个位置我们都能跳到,但我们具体是跳到i–j之间的哪个位置原创 2020-08-20 08:45:21 · 451 阅读 · 1 评论 -
贪心算法例题(一)
贪心算法例题(三)贪心算法-移除K个数字1、题目描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。2、题目分析: 题目简介明了,就是把给定的数字删除指定个数的数字使删除之后的数字是同等位数数字中最小的那个。但是需要注意的是,题目中给的数字是字符串的形式并且输出结果也是字符串的形式,这就涉及到字符串和数字之间的相互转化问题。 题目中要求删除的数字个数是不确定的,那么转载 2020-08-20 08:41:01 · 497 阅读 · 0 评论 -
贪心算法例题(二)
贪心算法例题(二)摇摆序列问题1、题目描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 给定一个整数序列,返回作为摆动序列的最长子转载 2020-08-20 08:37:26 · 278 阅读 · 0 评论 -
贪心算法
**贪心算法**一、什么叫贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。二、贪心算法使用范围1、原问题复杂度过高;2、求全局最优解的数学模型难以建立;3、求全局最优解的计算量过大;4、没有太大必要一定要求出全局最优解,“比较优原创 2020-08-19 22:42:29 · 785 阅读 · 0 评论