贪心法
jiyanfeng1
喜欢算法和编程的工科男
展开
-
聚会-朋友圈(贪心法)
你有一群朋友,总数为N. 你的这些朋友之间,可能相互认识,也可能不认识。你需要请他们来参加你的聚会。要求是,请来的每个人,他认识的人的数量超过5,不认识的人的数量也超过5.请你设计一个算法,使得聚会的总人数最大。思路:对于这群朋友中的每一个人,如果他认识的人少于5或者不认识的人少于5,那么就把他去掉。这样,不断循环检查剩下的人,直到剩下的每个人认识的人超过5且不认识的人原创 2012-11-07 07:39:31 · 4391 阅读 · 0 评论 -
[LeetCode] Jump Game II
Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Your goal is to r原创 2014-12-26 10:04:53 · 526 阅读 · 0 评论 -
[LeetCode] Jump Game I
Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Determine if you原创 2014-12-26 09:20:53 · 430 阅读 · 0 评论 -
贪心算法解汽车加油问题
相关问题1:https://blog.csdn.net/jiyanfeng1/article/details/89791544转自:http://blog.chinaunix.net/uid-9162199-id-190966.html一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。对于给定的n(n <= 500...转载 2014-09-18 02:56:24 · 34656 阅读 · 5 评论 -
选点问题
类似的问题:活动安排问题和区间覆盖问题。数轴上有n个闭区间[ai, bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。如果区间i内已经有一个点被取到,我们称此区间已经被满足。我们先讨论区间包含的情况。由于小区间被满足时大区间一定也被满足。所以在区间包含的情况下,大区间不需要考虑。把所有区间按b从小到大排序(b相同时a从大到小排序),则需要考虑的区间的a原创 2013-01-21 12:29:38 · 1239 阅读 · 0 评论 -
活动安排问题(贪心算法)
类似的问题是:选点问题和区间覆盖问题。活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。 设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一转载 2012-10-19 08:02:43 · 9866 阅读 · 0 评论 -
区间覆盖问题
类似问题:互动安排问题和选点问题区间覆盖问题数轴上有n个闭区间[ai, bi],选择尽量少的区间覆盖一条指定线段[s, t]。用贪心法解决这个问题的思路如下:(1)找到所有的、起点小于s的区间(2)把这些区间按照终点,从小到大排序(3)选择终点最大的那个区间,设这个最大的终点是bi(4)现在问题变成了,“选择尽量少的区间覆盖一条指定线段[bi, t]”(5)用相原创 2013-01-21 12:53:01 · 2641 阅读 · 0 评论 -
双机调度问题
流水作业调度问题(flow shop scheduling problem)有n个作业要在两台机器M1和M2组成的流水线上完成加工。每个作业i都必须先花时间ai在M1上加工,然后花时间bi在M2上加工。确定n个作业的加工顺序,使得从作业1在机器M1上加工开始到作业n在机器M2上加工为止总时间最少。直观上, 最优调度一定让M1没有空闲, 而让M2的空闲时间尽量少。下面的Johnson算法是贪原创 2013-01-21 13:07:21 · 2874 阅读 · 0 评论 -
Google笔试题,关于机器分配任务的顺序
有一台机器,上面有m个储存空间。然后有n个请求,第i个请求计算时需要占R[i]个空间,储存计算结果则需要占据O[i]个空间(其中 O[i]算法也应该能够判断出无论如何都不能处理完的情况。比方说,m=14,n=2,R[1]=10,O[1]=5,R[2]=8,O[2]=6。在这个例子中,我们可以先运行第一个任务,剩余9个单位的空间足够执行第二个任务;但如果先走第二个任务,第一个任务执行时空间就原创 2012-11-07 16:05:21 · 4996 阅读 · 0 评论 -
[leetcode] 区间合并问题 Merge Interval
Given a collection of intervals, merge all overlapping intervals.类似问题1:区间覆盖问题相关问题2:Rectangle Area IIFor example, given[1,3],[2,6],[8,10],[15,18],return[1,6],[8,10],[15,18].来源:leetcode思路:用...原创 2014-11-30 04:49:46 · 2897 阅读 · 0 评论