- 博客(16)
- 问答 (2)
- 收藏
- 关注
原创 回溯算法之打印1-N之间不重复的M位数字
$M=3 $ 从[1-5]5个数中随机取3个不重复的数,有多少种方案。当然 此处我们针对的是具体的问题,您可以根据自己的观点重构,此处仅做笔记。给定一个整数N,找出[1,N]中任意不重复的M个数。此处我们使用回溯算法进行求解。
2023-09-14 19:08:01
36
原创 贪心算法之零一背包问题的求解
0-1背包问题是指在给定一组物品和一个容量为若干的背包时,选择将哪些物品装入背包,使得装入的物品的总体积不超过背包容量,并且所装物品的总价值最大化。其中每个物品只有一个,即要么装入要么不装入,不能切分。因此称为0-1背包问题。该问题是计算机科学中的经典问题,具有重要的理论和实际应用价值。此处通过切换使用不能的排序算法就可以实现不同方式求解背包问题,当然,这是基于贪心算法的,动态规划需要请留言。关于此问题的求解有两种方式。此处我们只列举贪心算法求解。
2023-09-14 18:58:40
373
原创 贪心算法之不找零的金钱最佳组合问题C++
假设我们传递一个指定的金额数目,假设可以使用给定的货币面值和对应的数量达到金额就打印,并展示使用的货币以及个数,如果无法完成则返回。本帖只做记录学习,关于此算法和问题欢迎大家一起讨论和交流,互相学习。
2023-09-14 18:51:48
93
原创 设计模式之观察者模式
观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象同时监听某一个主题对象。当主题对象状态发生改变时,它会通知所有观察者对象,使得它们可以自动更新自己。在观察者模式中,主题对象负责维护观察者列表,同时提供注册和删除观察者的接口,以及通知观察者的接口。观察者对象负责将自己注册到主题对象中,并实现观察者接口,以便在主题对象状态发生改变时能够接收通知,并进行相应的更新操作。观察者模式可以用于解耦观察者。
2023-07-26 11:33:18
64
原创 设计模式之装饰器模式
装饰器模式是一种结构型设计模式,它可以动态地为对象添加额外的行为或职责,而无需修改现有的代码。该模式通过将对象包装在一个装饰器对象中,实现了透明地向对象添加行为的效果。
2023-07-26 11:32:46
80
原创 设计模式之工厂方法模式
它将对象的创建过程封装在工厂类中,客户端不需要知道具体对象的创建细节,只需要通过工厂类来获取需要的对象。当我们需要创建一个对象的时候,通常的做法是直接使用 new 操作符来实例化一个具体的对象。但是,当我们需要创建多个具有相似特征的对象时,我们需要重复编写相似的代码,这会导致代码冗余和可维护性问题。工厂方法模式的核心在于工厂类。客户端代码只需要知道工厂类的接口和产品的抽象类或接口,就可以创建具体产品的对象了。在简单工厂模式中,工厂类负责创建所有产品对象,根据不同的参数来创建不同的具体产品对象。
2023-03-14 16:40:16
63
原创 设计模式之仲裁者模式
仲裁者模式(Mediator Pattern)是一种行为型设计模式,它允许将复杂的系统划分为一组松耦合的对象,并通过这些对象的相互作用来实现更大的协作。该模式促进了对象之间的松耦合,从而增加了系统的可扩展性和维护性。仲裁者模式中,仲裁者(Mediator)是一个中心化的对象,它定义了其他对象之间的通信方式。对象之间不再直接相互交互,而是通过仲裁者进行通信。仲裁者模式的关键是将系统中的交互逻辑封装在仲裁者中,从而使得各个对象之间的关系变得简单清晰。简单的说就是整个团队的交流过程变成了组员向仲裁者报告仲裁者。
2023-03-13 17:57:23
482
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人