贪心算法
文章平均质量分 92
末代隐官-
朝圣者
展开
-
贪心算法(5)
因为我们需要满足尽可能多的孩子,因此我们针对当前胃口最小的孩子,遍历s 挑选饼干:能满足,直接投喂该饼干;假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。原创 2024-10-16 09:18:52 · 398 阅读 · 0 评论 -
贪心算法(4)
由于我们希望数组的和尽可能大,因此除非万不得已,我们应当总是修改负数,并且优先修改值最小的负数。因为将负数 −x 修改成 x 会使得数组的和增加 2x,所以这样的贪心操作是最优的。选择下标 (1, 2, 2) ,nums 变为 [3,1,0,2]。选择下标 (1, 4) ,nums 变为 [2,3,-1,5,4]。需要注意的是,nums2的调用方式 nums2[index2[i]]。选择下标 1 ,nums 变为 [4,-2,3]。3.根据下标数组排序后的结果,找到原数组的信息。原创 2024-09-25 15:43:56 · 1402 阅读 · 0 评论 -
贪心算法(3)
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。原创 2024-09-21 13:42:06 · 783 阅读 · 0 评论 -
贪心算法(2)
利用示例2分析,解释中长度为7的序列有 [1, 17, 10, 13, 10, 16, 8]。自然想到,将非极值点的替换成极值点 [1, 17, 5, 15, 5, 16, 8],可以发现仍是摆动序列,且摆动幅度更大。考虑一下初始化问题,对于 i = 0的情况,除非nums[0] = nums[1] = ...,别的时候nums[0]都可以作为序列的一元,即ret=1。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。原创 2024-09-15 15:50:11 · 830 阅读 · 0 评论 -
贪心算法(1)
nums 的和减小了 33 - 14.75 = 18.25 ,减小的部分超过了初始数组和的一半,18.25 >= 33/2 = 16.5。nums 的和减小了 31 - 14.5 = 16.5 ,减小的部分超过了初始数组和的一半, 16.5 >= 31/2 = 15.5。但是,如何找到数组中的最大的那个数决定了这个题的难易复杂程度。,它的使用场景很多,它底层是用大小根堆实现的,可以用log(n)的时间动态地维护数据的有序性。第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。原创 2024-09-12 17:27:29 · 788 阅读 · 0 评论