- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 动态规划之背包问题
/w:背包重量//n:物品数量//weights:每件物品的重量//values:每件物品的价值int(w + 1));i <= n;++i)j <= w;++j)else空间优化i <= n;++i)j >= 1;--j) //防止覆盖dp[i-1][j-w[i]]的值 采用倒序。
2024-08-06 15:29:50
355
1
原创 deb包中preinst、postinst、prerm、postrm等脚本的执行顺序及参数
参考:https://www.cnblogs.com/amoy9812/p/17469309.html。
2024-05-13 16:35:30
1253
1
原创 双指针之三数之和
【指针L】从【指针I】+ 1的位置开始,【指针R】从数组的尾部开始。d、左右指针重合或者交错,【指针I】+1,【指针L】= 【指针I】+1,【指针R】= length-1。并且【指针L】+1,【指针R】-1;注意,三个指针不能重叠,指向不同的数,且【指针I】< 【指针L】< 【指针R】【指针L】运动轨迹是从【指针I】下一个位置开始向右滑动,直到遇到【指针R】b、如果三指针指向的数据和 > 0,说明此时的答案偏大,把【指针R】-1;c、如果三指针指向的数据和 < 0,说明此时的答案偏小,把【指针L】+1。
2024-03-26 09:46:01
361
1
原创 机器学习中常见距离计算
余弦距离实际上就是计算两个向量的夹角,也就是在方向上计算两者之间的差异,不管绝对值相差多大,都不对它造成影响。在推荐算法中的感兴趣的相关性比较上,角度的关系比距离的绝对值还要重要,所以在推荐、文本分类中,经常会使用到余弦距离。当p=1时,就是曼哈顿距离 当p=2时,就是欧氏距离 当p→∞时,就是切比雪夫距离。根据变参数的不同,闵氏距离可以表示一类的距离。要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在座标轴上的平移或映射。切比雪夫距离就是两点坐标之间绝对值相差最大的距离,和上面的曼哈顿距离有些类似。
2024-01-04 11:29:26
540
1
原创 C++常用设计模式总结
组件协作Template模式(模板模式)Strategy模式(策略模式)Observer模式(观察者模式)单一职责Decorator模式(装饰模式)Bridge模式(桥模式)对象创建Factory模式(工厂模式)Abstract Factory模式(抽象工厂)Prototype模式(原型模式)Builder模式(构建器)对象性能Singleton模式(单例模式)Flyweight模式(享元模式)接口隔离Facade模式(外观模式/门面模式)
2023-12-28 10:25:09
465
1
原创 C++设计模式之责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它定义了请求的处理者对象之间的关系,并使多个处理者有机会处理该请求。当发出一个请求时,请求将沿着链条一直传递,直到链上的某一个处理者决定请求的处理方式。
2023-12-27 11:29:25
359
1
原创 C++设计模式之观察者模式
观察者模式是一种行为型设计模式,它允许多个“观察者”被通知某些情况的变化。被观察的对象(通常称为被观察者)将不断发出关于自身状态的更新通知,而这些观察者则侦听此变化并执行相应的操作。在C++中,观察者模式可以使用虚函数,继承,容器和模板类来实现。
2023-12-27 11:23:50
603
1
原创 C++设计模式之组合模式
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。
2023-12-27 11:12:26
546
1
原创 C++设计模式之策略模式
在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂,而且有时候支持不使用的算法也是一个性能负担。大部分情况下当看到 if - else 语句时就应该思考是否需采用策略模式(如果从时间维度来看,if - else是固定不变的,则不需采用策略模式)
2023-12-26 17:19:27
429
1
原创 C++设计模式之模板模式
模板方法模式是指定义一个操作中算法的框架,而将算法的一些步骤延迟到子类中实现。模板方法模式使得子类可以不改变算法的结构即可重定义算法的某些特定步骤。它是一种行为设计模式,它定义一个算法的模板,将一些计算步骤推迟到子类中。在C++中,模板方法通常采用继承机制实现,在基类中定义算法的框架,在子类中实现算法的某些步骤。
2023-12-26 16:56:37
403
1
原创 C++设计模式之桥接模式
由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。将抽象部分(业务功能)与实现部分(平台实现)分离使它们都可以独立地变化。
2023-12-26 14:30:35
395
1
原创 C++设计模式之装饰模式
如果穿毛衣还觉得冷, 你可以再套上一件夹克。如果遇到下雨, 你还可以再穿一件雨衣。所有这些衣物都 “扩展” 了你的基本行为, 但它们并不是你的一部分, 如果你不再需要某件衣物, 可以方便地随时脱掉。在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性,并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?
2023-12-26 09:57:20
415
1
原创 C++设计模式之享元模式
在有大量相似对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。
2023-12-25 14:59:28
475
原创 C++设计模式之代理模式
按职责来划分,通常有以下使用场景: 1、远程代理。3、Copy-on-Write 代理。4、保护(Protect or Access)代理。5、Cache代理。6、防火墙(Firewall)代理。7、同步化(Synchronization)代理。8、智能引用(Smart Reference)代理。在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等)直接访问会给使用者或系统结构带来很多麻烦。增加一层间接层是软件开发中常见的解决方式。
2023-12-22 11:51:57
407
原创 C++设计模式之适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它能使接口不兼容的对象能够相互合作,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。
2023-12-21 15:39:19
1124
原创 C++设计模式之建造者模式
主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。
2023-12-19 17:46:30
382
1
原创 Mupdf的矩阵操作
// build transform matrix fz_matrix transform = fz_pre_rotate(fz_scale(scaleX, scaleY), rotation);// build invert matrix fz_matrix invertctm = fz_invert_matrix(transform //martrix translation fz_rect rect, bounds; bounds = fz_transform_rect(re
2022-02-25 17:39:05
336
原创 使用QSS美化QTabWidget样式
参考:https://blog.csdn.net/weixin_43435307/article/details/108792706QTabWidget::pane{ border:none;}QTabWidget::tab-bar { left: 1px;}QTabBar::tab { background: #051322; color:#7F8997; border: 2px; border-top-left-radius: 10px; borde
2022-02-25 17:29:46
2945
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人