
C++
文章平均质量分 61
唔嗯雯的学习笔记
这个作者很懒,什么都没留下…
展开
-
贪心算法——代码随想录
学习目的1.理解这种经典算法的基础理论和应用场景2.利用算法解决实际问题(一)贪心算法解决的问题数学归纳法;反证法。(二)回溯算法的基础一般解题的步骤①将问题分为若干个子问题②求出适合的贪心策略③求解出每一个子问题的最优解④将局部最优堆叠为全局最优解(三)例题1.分发饼干分发饼干(1)题目分析为了满足更多的小孩,就不要造成饼干的浪费。子问题:从后向前用饼干依次满足小孩的胃口。因为满足大胃口小孩的饼干一定能满足小胃口小孩的饼干。(2)代码实现a.遍历小孩的胃口数组饼干原创 2022-04-18 08:59:06 · 516 阅读 · 0 评论 -
笔试题常用字符串元素处理
<cctype>主要用来处理字符串函数分类:字符分类、字符转换字符分类返回值是true or false字符转换:主要是字符的小写转换应用:各种字符统计相关的题1.字符分类函数名称函数功能isalnum()是否是十进制数或者字母a~ z或A~ Z或0~9isdigit()是否是十进制数字0-9isalpha()判断一个字符是否为字母a~ z或A~ Zislower()判断一个字符是否为小写字母a~ zisupper()判断一个字符原创 2022-04-12 16:58:56 · 117 阅读 · 0 评论 -
2021年美团笔试第8场
2.偏爱字母(1)题目分析题目描述:一个只含有E和F的字符串,从中选取字母数量EF相差最大的子字符串输入:字符串的长度n,字符串的组成输出:最大差值(2)代码实现a.定义输入输出b.用一个数组记录EF子串中出现的次数c.当E的个数小于F的个数需要重新更新数组值,这是之前出错的地方。//贪心,像PAT的最大子列和那题,我的算法启蒙,浙大数据结构的第一讲#include<iostream>#include<string>using namespace std;原创 2022-04-07 16:32:35 · 248 阅读 · 0 评论 -
2021年美团笔试第9场
1.买蛋糕(1)题目分析背景描述:客户要买特定重量的蛋糕,并且这个重量是考好的最重和最轻的。输入:每天能考的蛋糕数n,已经考好的蛋糕数m,顾客要求的蛋糕质量a,b,已经烤好的蛋糕质量。输出:小团能否满足顾客需求。问题类型:多条件判断问题;元素排序问题(2)步骤a.读取输入数据n,m,a,b;b.读取m个值;c.将m个值排序d.将m个值的两端值与a,b进行比较情况一:最大或最小值不在[b,a]中,wrong;情况二:最大最小值在[b,a]之中,添加a,b通过数组长度来判断是否符合要求原创 2022-04-07 15:14:11 · 1680 阅读 · 0 评论 -
动态规划解决子序列系列问题——代码随想录
1.最长递增序列最长递增序列(1)题目分析找到最长严格递增子序列的长度,这里并没有要求连续,只是提到了相对位置关系。动态规划五部曲分析a.dp[i]的定义dp[i]表示i之前包括i的最长上升子序列的长度;b.状态转移方程if(nums[i]>nums[j]) dp[i] = max(dp[i],dp[j]+1);c.dp[i]初始化每一个i,对应的dp[i]最长上升子序列,起始大小至少是1;d.确定遍历顺序dp[i]是从0到i-1推导而来,那么一定是从前向后遍历。(2)代码实原创 2022-04-07 09:51:34 · 300 阅读 · 0 评论 -
C++中map和set系列元素操作
参考书籍《C++Primer》1.添加元素添加元素是指添加一个元素或者一个元素范围;返回值:对于map、set插入后会返回一个是否插入成功的bool值,若插入成功则会返回一个指向指定元素的迭代器。对于multi_**总是会插入,所以无需返回bool值;(1)setset的插入操作和之前熟悉的vector类似。 set<int> set1; //插入具体的数值 set1.insert(1); //插入一个范围 set1.insert(v1.b原创 2022-04-05 20:13:42 · 1849 阅读 · 0 评论 -
array和vector的使用
学习目的1.熟练掌握各种数组定义的方式参考链接1.C++中数组定义及初始化2.C++二维数组的定义及理解3.C++中Vector的使用方法具体内容1.用array定义和使用数组#include<iostream>#include<vector>#include<array>using namespace std;int main(){ //静态定义数组 int array0[]={};//定义一个空数组,没有分配空间 in原创 2022-04-05 07:34:33 · 727 阅读 · 0 评论 -
C++中相关的头文件
C++ 相关的库原创 2022-02-08 16:34:10 · 496 阅读 · 0 评论 -
清华大学C++课程学习笔记——第九章群体类和群体数据的组织
1.函数模板(1)背景描述:同种逻辑处理不同类型的数据,需要重新写一个函数;多个函数会给函数的修改带来困难;重载函数虽然为使用者提供了方便,但是编写者仍然需要都写一遍(2)模板使用 template<模板参数表> 函数定义函数参数表的内容参数名称标识符类型参数class /typename标识符常量参数类型说明符 标识符模板参数template <参数表>class 标识符【注意】2.类模板(1)背景描述使用类模板原创 2022-02-08 16:33:12 · 981 阅读 · 0 评论 -
清华大学C++课程学习笔记——第十章泛型程序设计
STL基本组件(1)容器a.容器分类b.容器的通用功能c.顺序容器d.关联容器(2)迭代器a.基本定义:是算法和容器的桥梁b.迭代器相关的基本操作:记住几个与指针相关的就好(3)函数对象a.基本概念b.STL提供的函数对象(4)算法a.算法特点b.算法分类参考资料STL用法总结STL的基本概念基本组件名称解释容器(Container)容纳包含一组元素的对象迭代器(iterator)迭代器是泛化的指针,提供了访问容器中每个元素的方法函数对象(function ob原创 2022-02-06 07:35:30 · 522 阅读 · 0 评论 -
清华大学C++课程学习笔记——第七章 继承和派生
继承和派生是对同一问题的不同角度来看继承:保持已有类的特性而构造新类的过程(侧重在保持已有类的特征——实现代码的重用)派生:在已有类的基础上新增自己的特性(在原有基础上强调个性的方面——新的问题,原有的问题无法实现)(一)继承1.定义语法单继承:只从一个直接基类继承class 派生类名:继承方式 基类名{ 成员声明(新增的函数);}class Derived:public Base{ Derived (); ~ Derived();}多继承class 派生类名:继承方式1原创 2022-01-25 22:16:27 · 522 阅读 · 0 评论 -
清华大学C++课程学习笔记——第六章 数组指针字符串
(一)数组1.概念:具有一定顺序关系的若干相同变量的集合体(数组的顺序信息,与循环语句配合,依次处理批量数据)数组元素的地址是连续的,与逻辑上的次序相邻数组名字是数组元素的内存地址,数组名是一个常量,不能被赋值2.定义&使用:类型说明符 数组名[常量表达式][常量表达式]:先定义后使用,逐个引用数组元素一维数组的初始化:列出全部元素的初始值;只给一部分元素指定初始值 ;列出全部数组元素初值,不指定数组长度二维数组的初始化:列出所有的初值,按顺序进行初始化;只对部分元素进行初始化原创 2022-01-10 23:14:56 · 497 阅读 · 0 评论 -
清华大学C++课程学习笔记——第五章 数据共享与共享数据的保护
郑丽老师课程第5章作用域名称(由小到大)作用域范围函数原型作用域函数原型中的参数,作用域开始于“(”,结束于“)”局部作用域函数的形参,在块中声明的标识符{}类作用域范围包括类体和成员函数体文件作用域不在各个作用域出现的声明就具有文件作用域,开始于声明点,结束于文件尾2.可见性从引用的角度来谈的概念,标识符在某处见,就可以在该处引用此标识符;如果某个标识符在外层中声明, 且在内层中没有同一标识符声明,则该标识符在内层可见;对于两个嵌套的作原创 2022-01-09 23:42:46 · 286 阅读 · 0 评论 -
清华大学C++课程学习笔记——第四章 类和对象(3)实验部分
(一)1.实验目的:注意不同属性成员访问方式,并观察构造函数和析构函数的调用顺序2.实验内容:声明一个CPU类数据成员:rank、frequency 、voltage成员函数:run、stop3.要求rank为枚举类型frequency为整数型voltage为浮点型的电压值#include<iostream>using namespace std;enum CPU_Rank {P1=1,P2=2,P3=3,P4=4,P5=5,P6=6,P7=7};class CPU转载 2022-01-09 14:24:24 · 184 阅读 · 0 评论 -
清华大学C++课程学习笔记——第四章 类和对象(2)结构体、联合体、枚举类
(一)结构体1.概念辨析:结构体是一种特殊形态的类,与类的区别是:类的缺省访问权限是private;结构体的访问权限是public。(缺省访问权限,默认访问权限)2.定义定义主要用来保存数据,而没有操作类型(查询为主)习惯将结构体数据设为公有,使用结构体更方便主要是为了同C语言兼容//结构体的定义struct 结构体名称{ 公有成员//紧跟着大括号之后的成员默认为公有成员protected: 保护型成员private: 私有成员};3.结构体的初始化一个结构体的全原创 2022-01-09 13:21:21 · 470 阅读 · 0 评论 -
清华大学C++课程学习笔记——第四章 类和对象(1)
类:同一类对象的共同属性和行为对象:现实中对象的模拟,具有属性和行为类是同一类对象的抽象,对象是类的实例。概念其他细节抽象对同一类对象的属性进行概括形成类数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)代码抽象:描述某类对象的共同行为特征和功能封装将抽象出的数据、代码封装在一起形成类增加安全性,以特定的权限来使用类的成员,{}继承在已有类的基础上扩展形成新的类(第七章)多态同一名称,原创 2022-01-09 10:52:26 · 215 阅读 · 0 评论 -
清华大学C++课程学习笔记——第三章函数
清华大学郑莉网课第三章的学习笔记原创 2022-01-06 11:28:43 · 367 阅读 · 0 评论 -
C++编写贪吃蛇游戏
参考博客经典游戏——贪吃蛇C++代码实现游戏设计思路(一)蛇1.移动方向:上下左右、通过蛇的位置变化来显示2.静态显示:用不同符号区分一下蛇身和食物3.动态显示:蛇的移动过程;(以前我思考这个点的时候会想着怎么把蛇身的显示用最小的变化描述出来,然后越想越理不清,这里可以用一个清屏操作完成)(二)食物随机数:随机数生成函数以及相应的库函数(三)蛇和食物的关系1.吃食:食物变为蛇头,原先的蛇头变为蛇身(四)其他附加功能设计1.移动速度:不同速度对应不同的等级,不同等级通过吃食完成2.原创 2021-12-28 00:43:40 · 1876 阅读 · 0 评论