- 博客(75)
- 收藏
- 关注
原创 Leetcode刷题. 哈希表数据结构的应用
这道题目主要是考察对于奇数回文串的处理,例如对于 "ccc"这种情况,在判断是奇数的时候,需要单独加上对应的个数。这里题型通常为简单题型,但是考察对基础知识的掌握,以及灵活应用。
2024-10-17 23:09:49
227
原创 Leetcode刷题. 贪心算法
比较传统的解释:将整个问题拆解为几个小问题,找到小问题的最优解,加起来就是整个问题的全局最优解。对于现在的我理解贪心就是一种感觉,给出证明很难,解题思路一般就是认真读题,发掘题目的条件,然后尝试给出算法。一个显而易见的条件:水的面积取决于底边的长度和水池两边的最短边,因此可以首先选择最长的底边,然后在此基础上在选较高的水池的一边,在这个过程中计算面积最大值,保存即可。
2024-10-14 00:20:11
571
原创 逻辑学概论
对逻辑学有一些兴趣,偶然间翻到清华大学《逻辑学概论》 陈为蓬/清华大学公开课,在这里记录一下学习笔记与心得体会。逻辑学和实际生活中理解的逻辑差别较大,对现阶段帮助并不是很有帮助,有缘再更。逻辑学:以推理形式为主要研究对象的学科。推理:从已知条件(前提)得出结论的过程。eg. 所有的A都是B,C是A,C是B。
2024-10-13 23:31:53
255
原创 【大模型】1. 深度学习框架和推理框架概念
深度学习框架:用于构建、训练和部署神经网络模型,包含:TensorFlow、PyTorch、OneFlow等。LMIR:是TVM在优化和编译深度学习模型时使用的低级中间表示形式,用于表示模型的计算图和计算操作。深度学习模型交换格式ONNX:实现不同深度学习框架之间的模型转换和互操作性。TVM:是一个开源的深度学习编译器和优化器,
2024-05-07 16:08:48
439
原创 【More Effective C++】条款27:要求或禁止在堆中产生对象
方法:禁止使用隐式的析构函数,引进专用的伪析构函数,用来访问真正的析构函数。包含UPNumber对象的类可以修改为包含指向UPNumber的指针。析构函数声明为protected;弊端:该类不能被继承和被包含。
2024-04-30 13:53:39
217
原创 【More Effective C++】条款4:避免无用的缺省构造函数
【代码】【More Effective C++】条款4:避免无用的缺省构造函数。
2024-04-26 14:11:36
270
原创 【Effective Modern Cpp】条款9:优先考虑别名声明而非typedef
是什么,这就是为什么编译器会坚持要求你在前面加上。将会是一个数据成员,不是一个类型,在。是否表示一个类型取决于。
2024-04-24 11:36:14
278
原创 【More Effective C++】条款11:禁止异常流出析构函数之外
【代码】【More Effective C++】条款11:禁止异常流出析构函数之外。
2024-03-11 23:15:02
391
原创 【More Effective C++】条款8:new和delete的理解
operator new []:用于给数组对象分配内存,和单一版本的区别是调用构造函数的次数。程序员无法直接调用对象初始化的构造函数,所以在堆上创建对象必须使用new操作符。new:内建的操作符和sizeof一样,不能被改变意义,包含下面两个部分。operator new:只负责分配内存,可以被冲重载,改变内存分配方法。placement new:在指定的内存上构建对象,返回指向该对象的指针。上述创建对象的必须和删除对象的操作符对应起来。
2024-02-24 21:36:54
589
原创 【More Effective C++】条款22:采用op+=取代op+优势
operator+=比operator+效率高,可以通过返回值优化避免临时对象的构造和析构成本;
2024-02-22 22:44:59
661
原创 【More Effective C++】条款21:用重载技术避免隐式类型转换
【代码】【More Effective C++】条款21:用重载技术避免隐式类型转换。
2024-02-15 17:03:02
632
原创 【More Effective C++】条款20:返回值优化RVO
RVO:编译器将return表达式定义的对象构造于c内,减少了函数的临时对象的构造和析构。
2024-02-15 16:04:57
464
原创 【More Effective C++】条款18:分期摊还预期的计算成本
【代码】【More Effective C++】条款10:分期摊还预期的计算成本。
2024-02-13 12:15:02
437
原创 【More Effective C++】条款17:考虑使用lazy evaluation
含义:将计算拖延到必须计算的时候,以下为4个场景优点:避免不必要的计算,节省成本。
2024-02-13 11:28:46
560
原创 【More Effective C++】条款5:警惕隐式类型转换
转换成这种形式 if (a == static_cast(b[i]))if (a == b[i]) 忘记写了a[i],编译器不会报错,是因为发生的隐式转换;隐式类型转换操作符,可能导致错误的函数调用,应该提供显示的函数调用。
2024-02-11 16:24:44
903
原创 【More Effective C++】条款3:不以多态的方式处理数组
注意:通过array[i]操作本质上是*(array + i),通过父类指针操作子类,会出现未定义的行为。
2024-02-10 21:33:17
392
原创 【Ubuntu 18.04 安装截图软件 flameshot 】
截完图后保存Ctrl+S,复制到剪贴板 Ctrl+C。创建快捷键:设备->键盘->+>输入名字和快捷键。
2024-01-31 15:51:24
633
原创 【More Effective C++】条款16:谨记80-20法则
80-20法则说一个程序80%的资源用于20%代码上:软件的整体性能几乎是代码的一小部分决定的,即使性能瓶颈所在:
2024-01-27 23:20:18
501
原创 【Effective C++】4. 设计与声明
1. 语法一致性:访问class成员时每一个都是函数,不需要记住是否需要小括号。2. 使成员变量的处理有更精准的控制。3. 实现良好的封装特性。
2024-01-22 23:54:22
585
1
原创 【Effective C++】2. 构造/析构/赋值运算
2. 如果显式定义了其中的任何一个特殊成员函数,编译器将不会生成默认的对应函数;3. 默认拷贝赋值函数只有生成代码合法的情况下才会被创建。
2024-01-20 16:48:02
1175
原创 【Effective C++】1. 让自己习惯C++
1. 预处理器只进行简单的替换,变量名称不会被记录符号表,同时可能导致编译的目标文件包含常量的多份拷贝;2. 定义字符串的采用string替换char*,避免写两次const的情况出现;3. #define没有作用域,不能将常量的作用域限制在class内;5. enum 和 #define定义的对象不会导致非必要的内存分配;4. 如果上述类中,编译器不允许在类中设定初值,可以改用枚举值替代;6. 形似函数的宏,最好用inline函数替换。
2024-01-19 23:31:00
1231
原创 【推荐系统实践—好的推荐系统】
推荐系统的任务是联系用户和信息,实现信息消费者和信息生产者的双赢推荐系统的组成:前台的展示界面,后台的日志系统和推荐算法。
2024-01-18 23:35:22
481
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人