每日一题(leetcode2952):添加硬币最小数量 初识贪心算法

这道题如果整体去思考,情况会比较复杂。因此我们考虑使用贪心算法。

1 我们可以假定一个X,认为[1,X-1]区间的金额都可以取到,不断去扩张X直到大于target。(这里为什么要用[1,X-1]而不是[1,X],总的来说是方便,潜在思想是1,2,4,8,....n这样下去最后能够构成的数的区间是是[1,2^(n+1)-1]),和这里如出一辙,X就像一个桥梁,成为了一个边界)

2 我们会先将原coins数组进行从小到大排序,接着逐个去判断与X的大小关系,如果小于等于,那么那么[1,X]会扩展为[1,X+coins[index]](index为当前数索引),那么此时可以构成的数为[1,X+coins[index]-1](从这里可以感受到X桥梁的作用);如果是大于,那么就需要添加一个X,那么[1,X]会扩展为[1,2X](index为当前数索引),那么此时可以构成的数为[1,2X-1]。就这样,直到循环结束。

可以看看官方的讲解:

class Solution {
public:
    int minimumAddedCoins(vector<int>& coins, int target) {
        sort(coins.begin(),coins.end());
        int length=coins.size();
        int index=0;
        int res=0;
        int x=1;
        while(x<=target)
        {
            if(index<length && coins[index]<=x)
            {
                x+=coins[index];
                index++;
            }
            else
            {
                x<<=1;
                res++;
            }
        }
        return res;
    }
};

相关推荐

  1. 贪心LeetCode 2952. 需要添加硬币数量

    2024-04-03 14:34:01       22 阅读
  2. leetcode 2952.需要添加硬币数量

    2024-04-03 14:34:01       18 阅读
  3. Leetcode-2952-需要添加硬币数量-c++

    2024-04-03 14:34:01       21 阅读
  4. 2952. 需要添加硬币数量

    2024-04-03 14:34:01       19 阅读
  5. 2952. 需要添加硬币数量

    2024-04-03 14:34:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 14:34:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 14:34:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 14:34:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 14:34:01       20 阅读

热门阅读

  1. map/multimap容器(一)

    2024-04-03 14:34:01       14 阅读
  2. 设计原则之多用组合少用继承

    2024-04-03 14:34:01       14 阅读
  3. 一些关于机器学习的练习

    2024-04-03 14:34:01       14 阅读
  4. mybatis批量新增数据

    2024-04-03 14:34:01       14 阅读
  5. 最大子数组问题

    2024-04-03 14:34:01       20 阅读
  6. 洛谷 P8772 [蓝桥杯 2022 省 A] 求和

    2024-04-03 14:34:01       15 阅读
  7. audio_video_img图片音视频异步可视化加载

    2024-04-03 14:34:01       14 阅读
  8. 2024年3月调研学习文档资料汇总

    2024-04-03 14:34:01       13 阅读
  9. Vulkan Material 设计学习

    2024-04-03 14:34:01       15 阅读
  10. 自然语言处理(NLP):揭秘AI领域的“语言大师

    2024-04-03 14:34:01       15 阅读