
贪心算法
文章平均质量分 85
贪心算法
dbln
这个作者很懒,什么都没留下…
展开
-
贪心算法(四)
如果 g[p1] > s[p2],说明相应位置的饼干不能够满足对应位置的孩子的胃口。根据上图,我们可以分析:从棕色方框位置起跳,可以到达红色方框中的某一个数;从黄色方框位置的某一个数起跳,可以到达绿色方框的某一个数。~ 如果 g[p1] <= s[p2],说明相应位置的饼干能够满足对应位置的孩子的胃口,满足的孩子数加1。从棕色方框起跳到红色方框,再从红色方框跳到黄色方框,最后从黄色方框跳动绿色方框。这道题的贪心策略和上一道题,跳跃游戏II 的贪心策略一模一样,只是题目要求的返回结果不一样。原创 2024-12-31 16:43:06 · 961 阅读 · 2 评论 -
贪心算法(五)
根据题目,我们可以知道:在几个区间中,如果这些区间两两相互重叠,那么说明它们有公共部分,那么我们就可以用一支箭将他们全部引爆。再进一步思索,这些区间有公共部分,那就说明它们的交集是不为空的。换句话说,就是要保留尽量多的区间,使这些区间没有重叠部分。排序后,我们能够保证有重叠部分的区间一定是连续的,是挨在一起的。排序后,我们能够保证有重叠部分的区间一定是连续的,是挨在一起的。排序后,我们能够保证能够合并的区间一定是连续的,挨在一起的。所以说,这道题就是找出所有互相重叠的区间,也就是求区间的交集。原创 2025-01-09 13:17:28 · 884 阅读 · 0 评论 -
贪心算法(六)
首先,对数组进行排序,但是要重写一下排序规则:如果两个区间的左端点不相等,按照左端点从小到大进行排序,如果两个区间的左端点相等,按照左端点从大到小进行排序。但是,设字符串s大小为n,如果s中出现次数最多的字符的次数大于(n+1)/ 2,那么无论怎样放置,都无法得到想要的结果。进行模拟,每次将同一类元素全部处理,即如果元素1出现的次数最多,那么就将所有的元素1放置好,再去放置其他元素。先将出现次数最多的元素,从第一个位置开始,进行放置, 然后隔一个位置放置。2、奇数的二进制表示的最后一位是1。原创 2025-01-24 11:34:51 · 650 阅读 · 0 评论 -
贪心算法(三)
而孙膑给田忌出了个注意:田忌的下等马对齐王的上等马,中等马对下等马,上等马对中等马。这样,虽然齐王的上等马对田忌的下等马是场碾压式的胜利,可是另外两场,田忌都可以获胜。总的来说,就是田忌获胜了。贪心策略对于田忌赛马的思想运用,就是对于同一位置来说,如果nums1的值小于nums2的值, 那么我们就拿nums1的值去匹配nums2中没有被匹配元素的最大元素。赛马的要求就是:上等马对上等马,中等马对中等马,下等马对下等马。因为齐王的上中下等马,都依次比田忌的上中下等马好一些,所以无论怎么比,田忌都无法获胜。原创 2024-12-24 17:04:06 · 2192 阅读 · 1 评论 -
贪心算法(二)
扫描到101的时候,101可以接在2的后面,也可以接在3的后面,也可以接在7的后面,因为要找最长的递增序列,所以将101放在7的后面,形成长度为4的递增序列。扫描到18的时候,18可以接在2的后面,也可以接在3的后面,也可以接在7的后面,但无法接在101的后面,所以递增序列长度为4时,最后位置的元素存较小的18。如下图,我们只要找到所有能够获得正收益的一段,就可以将其利润算上。扫描到7的时候,7可以接在2的后面,也可以接在3的后面,因为要找最长的递增序列,所以将7放在3的后面,形成长度为3的递增序列。原创 2024-12-16 12:01:41 · 1069 阅读 · 2 评论 -
贪心算法(一)
此时来了一个顾客,支付了20元,如果选择第一种对于20元的找零方法,那么找零后,手里就剩了一张20元和一张10元的,然后又来了一个顾客,支付10元,那么此时就无法找零了。所以说,对于一个元素,如果用该元素减去它前面一个的元素得到的差值与用它后面的元素减去它自己得到的差值,相乘是负数,就说明该元素处于波峰或者波谷,那么这个元素就属于最长摆动序列的一员,统计长度时就要算上它。根据题目分析,我们最终的目的是将数组的元素按照一定的规则,按顺序放置,也就是对元素进行排序,就得到元素组成的整数是最大的。原创 2024-12-10 17:15:36 · 4022 阅读 · 9 评论