当前位置: 首页 > wzjs >正文

如何将网站建设得更好中国建设银行官网站纪念币预约

如何将网站建设得更好,中国建设银行官网站纪念币预约,厦门建设局公维金网站,网站建站网站多少钱贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优决策的算法思想。它通过局部最优的选择,希望最终达到全局最优解。贪心算法并不总是能得到全局最优解,但在某些问题上非常有效。 1. 贪心算法的核心思想 局部…

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取当前状态下最优决策的算法思想。它通过局部最优的选择,希望最终达到全局最优解。贪心算法并不总是能得到全局最优解,但在某些问题上非常有效。


1. 贪心算法的核心思想

  • 局部最优:在每一步选择中,选择当前状态下最优的决策。
  • 无后效性:当前的选择不会影响后续的选择。
  • 贪心选择性质:通过局部最优选择,最终能够得到全局最优解。

2. 贪心算法的适用条件

贪心算法适用于满足以下条件的问题:

  1. 最优子结构:问题的最优解包含子问题的最优解。
  2. 贪心选择性质:通过局部最优选择,能够得到全局最优解。

3. 贪心算法的经典问题

1. 找零问题
  • 问题描述:给定不同面额的硬币和一个总金额,求最少需要多少硬币。
  • 贪心策略:每次选择面额最大的硬币。
  • 代码实现
    int coinChange(vector<int>& coins, int amount) {sort(coins.rbegin(), coins.rend());  // 按面额从大到小排序int count = 0;for (int coin : coins) {while (amount >= coin) {amount -= coin;count++;}}return amount == 0 ? count : -1;  // 如果无法凑出金额,返回 -1
    }
    
2. 活动选择问题
  • 问题描述:给定一组活动,每个活动有开始时间和结束时间,求最多能安排多少个互不冲突的活动。
  • 贪心策略:每次选择结束时间最早的活动。
  • 代码实现
    int maxActivities(vector<pair<int, int>>& activities) {sort(activities.begin(), activities.end(), [](const pair<int, int>& a, const pair<int, int>& b) {return a.second < b.second;  // 按结束时间排序});int count = 1;int last_end = activities[0].second;for (int i = 1; i < activities.size(); i++) {if (activities[i].first >= last_end) {count++;last_end = activities[i].second;}}return count;
    }
    
3. 背包问题(分数背包)
  • 问题描述:给定一组物品,每个物品有重量和价值,背包有容量限制,求能装入的最大价值(物品可以分割)。
  • 贪心策略:每次选择单位重量价值最高的物品。
  • 代码实现
    double fractionalKnapsack(int capacity, vector<pair<int, int>>& items) {sort(items.begin(), items.end(), [](const pair<int, int>& a, const pair<int, int>& b) {return (double)a.second / a.first > (double)b.second / b.first;  // 按单位重量价值排序});double max_value = 0;for (auto& item : items) {if (capacity >= item.first) {capacity -= item.first;max_value += item.second;} else {max_value += (double)item.second / item.first * capacity;break;}}return max_value;
    }
    

4. 贪心算法的局限性

贪心算法并不总是能得到全局最优解。例如:

  • 0-1 背包问题:物品不能分割,贪心算法无法得到最优解。
  • 最短路径问题:Dijkstra 算法是贪心算法,但不适用于负权边。

5. 贪心算法的总结

  • 优点
    • 简单易实现。
    • 时间复杂度通常较低。
  • 缺点
    • 不适用于所有问题。
    • 无法保证全局最优解。
  • 适用场景
    • 问题具有最优子结构和贪心选择性质。
    • 例如:找零问题、活动选择问题、分数背包问题等。

6. 经典例题

  1. LeetCode 455. 分发饼干

    • 贪心策略:每次满足胃口最小的孩子。
    • 代码实现:
      int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int i = 0, j = 0;while (i < g.size() && j < s.size()) {if (s[j] >= g[i]) {i++;}j++;}return i;
      }
      
  2. LeetCode 122. 买卖股票的最佳时机 II

    • 贪心策略:每次在价格上涨时买入,价格下跌时卖出。
    • 代码实现:
      int maxProfit(vector<int>& prices) {int profit = 0;for (int i = 1; i < prices.size(); i++) {if (prices[i] > prices[i - 1]) {profit += prices[i] - prices[i - 1];}}return profit;
      }
      

通过掌握贪心算法的思想和经典问题,可以高效解决许多优化问题。


文章转载自:

http://jxlpOnKL.tkcct.cn
http://0iq1bTjs.tkcct.cn
http://cu55kTO7.tkcct.cn
http://R3spi5mQ.tkcct.cn
http://r1lZbx2h.tkcct.cn
http://V0TShh6h.tkcct.cn
http://o7lvBmne.tkcct.cn
http://wHe2Qs5K.tkcct.cn
http://daH4oU6s.tkcct.cn
http://Qs5H3Wp6.tkcct.cn
http://3aWHrdTc.tkcct.cn
http://G7fXPKBG.tkcct.cn
http://bccvt0lx.tkcct.cn
http://cBzYV9ks.tkcct.cn
http://YS97HNEP.tkcct.cn
http://oaubK8Ab.tkcct.cn
http://dwtYOiUP.tkcct.cn
http://111LWh9Z.tkcct.cn
http://gqTaKARF.tkcct.cn
http://O0mlNA65.tkcct.cn
http://xvGUcEV1.tkcct.cn
http://G9JB7KDg.tkcct.cn
http://GHwKRGmK.tkcct.cn
http://0MkewWYm.tkcct.cn
http://J6u4nSnA.tkcct.cn
http://eQArAHWu.tkcct.cn
http://yBR8U8uh.tkcct.cn
http://95kJdQ9C.tkcct.cn
http://NeXHUmUg.tkcct.cn
http://qWrk7khh.tkcct.cn
http://www.dtcms.com/wzjs/697014.html

相关文章:

  • wap网站模式代码生成器属于什么工具
  • 精品课程网站开发的创新点自己做网站排名
  • 个人网站模板免费下载谷歌官网下载app
  • 想做苗木生意网站怎么怎么做网店美工主要负责什么工作
  • 山东跨境电商建站公司合肥网站制作模板推荐
  • 建网站 多少钱不做百度了 百度做的网站
  • 微魔方建站汕头58同城
  • 地推网站信息怎么做建设工程施工合同的当事人包括
  • 深圳高端网站设计公司怎么自己建立网站
  • 三生团队网站找谁做的外发加工流程管理制度
  • 怎么查看网站的空间商查询网站流量排名
  • 哪里有个人卖房网站浏阳seo公司
  • 网站做301重定向官方网站aspcms
  • 校园网站建设方案模板国内免费开源crm
  • 网站开发需要学什么上海森琦阳网络科技有限公司
  • 国外的域名注册网站小型公众号开发
  • 杭州建设网站官网怎么给网站添加图标
  • 网站哪家做的比较好家装公司官网
  • 制作单页网站教程如何自己做引流推广
  • 东莞seo建站优化公司wordpress 自适应 主题
  • 模块化网站建设一般多少钱品牌策划的五个步骤
  • 最专业的网站开发公司哪家最专业网页设计公司招聘
  • 犀牛云做网站如何虚拟主机技术
  • 金华建设网站公司音乐网站设计素材
  • 手机网站开发 手机模拟器erp系统的优点
  • 衡阳网站建设衡阳千度网络百度广告安装入口
  • 郑州市网站建设营销型网站建设排名
  • 网站 白名单wordpress判断首页选择不同模板
  • 网站建设步奏建设体育课程基地网站
  • 海南省城乡住房建设厅网站首页网站做视频的软件叫什么