![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法——贪心算法
杨小帆_
沉下心来做技术
展开
-
LeetCode 55. 跳跃游戏
题目:55. 跳跃游戏类别:贪心算法给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false...原创 2019-01-25 15:01:28 · 147 阅读 · 0 评论 -
用 heapq 解最小生成树——贪心算法
一、题目描述【问题描述】Prim算法解决的是带权重的无向图上连接所有顶点的耗费最小的生成树。【输入形式】在屏幕上输入顶点个数和连接顶点间的边的权矩阵。【输出形式】从源到各个顶点的最短距离及路径。【样例输入】80 15 7 0 0 0 0 1015 0 0 0 0 0 0 07 0 0 9 12 5 0 00 0 9 0 0 0 0 00 0 12 0 0...原创 2019-05-30 12:46:58 · 475 阅读 · 0 评论 -
LeetCode 910. 最小差值 II
题目:910. 最小差值 II类型:贪心算法给定一个整数数组 A,对于每个整数 A[i],我们可以选择 x = -K 或是 x = K,并将 x 加到 A[i] 中。在此过程之后,我们得到一些数组 B。返回 B 的最大值和 B 的最小值之间可能存在的最小差值。 示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:输入:A ...原创 2019-01-29 10:52:42 · 898 阅读 · 0 评论 -
LeetCode 921. 使括号有效的最少添加
题目:921. 使括号有效的最少添加类型:贪心算法给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效字符串,或者 它可以被写作 (A)...原创 2019-01-29 10:02:07 · 277 阅读 · 0 评论 -
LeetCode 881. 救生艇
题目:881. 救生艇类型:贪心算法第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。返回载到每一个人所需的最小船数。(保证每个人都能被船载)。 示例 1:输入:people = [1,2], limit = 3输出:1解释:1 艘船载 (1, 2)示例 2:...原创 2019-01-29 09:21:32 · 583 阅读 · 0 评论 -
LeetCode 763. 划分字母区间
题目:763. 划分字母区间类型:贪心算法字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。...原创 2019-01-28 10:14:33 · 271 阅读 · 0 评论 -
LeetCode 621. 任务调度器
题目:621. 任务调度器类型:贪心算法给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 C...原创 2019-01-27 19:40:09 · 947 阅读 · 0 评论 -
LeetCode 435. 无重叠区间
题目:435. 无重叠区间类型:贪心算法给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。...原创 2019-01-27 10:18:24 · 395 阅读 · 0 评论 -
LeetCode 452. 用最少数量的箭引爆气球
题目:452. 用最少数量的箭引爆气球类型:贪心算法在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xsta...原创 2019-01-27 09:28:34 · 434 阅读 · 0 评论 -
LeetCode 406. 根据身高重建队列
题目:406. 根据身高重建队列类型:贪心算法假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0...原创 2019-01-26 17:17:04 · 759 阅读 · 0 评论 -
LeetCode 376. 摆动序列
题目:376. 摆动序列类型:贪心算法如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前...原创 2019-01-26 13:14:20 · 506 阅读 · 3 评论 -
LeetCode 135. 分发糖果
题目:135. 分发糖果类型:贪心算法老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]输出: 5解释: 你可以分别...原创 2019-01-26 10:28:26 · 291 阅读 · 0 评论 -
LeetCode 134. 加油站
题目:134. 加油站类型:贪心算法在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明: 如果题目有解,该答案即为唯一答案。 输...原创 2019-01-25 20:35:27 · 99 阅读 · 0 评论 -
LeetCode 45. 跳跃游戏 II
题目:45. 跳跃游戏 II类别:贪心算法给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的...原创 2019-01-25 17:19:56 · 141 阅读 · 0 评论 -
用 heapq 解哈夫曼编码问题——贪心算法
一、题目描述【问题描述】使用贪心算法求解Huffman编码问题,具体来说就是,根据每个字符的出现频率,使用最小堆构造最小优先队列,构造出字符的最优二进制表示,即前缀码。在程序开始说明部分,简要描述使用贪心算法求解Huffman编码问题的算法过程。【输入形式】在屏幕上输入字符个数和每个字符的频率。【输出形式】每个字符的Huffman编码。【样例输入】645 13 12 1...原创 2019-06-02 22:30:29 · 830 阅读 · 1 评论