- 博客(36)
- 收藏
- 关注
原创 黑马程序员01-通讯录管理系统
通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人∶向通讯录中添加新人,信息包括((姓名、性别、年龄、联系电话、家庭住址)最多记录1000人。显示联系人:显示通讯录中所有联系人信息。删除联系人:按照姓名进行删除指定联系人。查找联系人:按照姓名查看指定联系人信息。修改联系人:按照姓名重新修改指定联系人。清空联系人:清空通讯录中所有信息。退出通讯录:退出当前使用的通讯录。
2025-06-18 00:08:26
419
原创 力扣-链表
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。的链表,表示两个非负的整数。它们每位数字都是按照。请你将两个数相加,并以相同形式返回一个表示和的链表。的方式存储的,并且每个节点只能存储。
2025-03-23 16:17:12
179
原创 动态规划-刷题
知识点:https://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.htmlhttps://programmercarl.com/0063.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84II.html。通过这道题目,大家先粗略了解, 01背包,完全背包,多重背包的区别,不过不用细扣,因为后面 对于 完全背包,多重背包 还有单独讲解。背包容量为1,可以放下物品0,此时背包里的价值为15。
2025-03-22 16:18:36
872
原创 04 泛型编程
/ 函数模板/*函数的定义*/return c;return c;//提取“公因式”template<typename T>//加之后 T就可用return c;//3//3.01//自动类型的推导//3//3.01//显示指定类型//3.01//值为-61?return 0;//template<typename T>都可以private:int size;
2025-03-19 23:17:03
340
原创 代码随想录训练营第27天(贪心算法)
2、455.分发饼干解析:代码随想录455. 分发饼干 - 力扣(LeetCode)public:// 对孩子的胃口数组 g 和饼干数组 s 进行排序// 排序孩子的胃口数组,从小到大// 排序饼干数组,从小到大// 从饼干数组的最后一个元素开始遍历(最大的饼干),初始化为 s.size() - 1// 饼干数组的下标,表示当前正在考虑的最大饼干// 初始化结果变量,记录能满足的孩子数量// 从孩子数组的最后一个元素开始遍历(胃口最大的孩子)i >= 0;
2025-03-13 21:40:07
274
原创 08 动态规划
分治法问题:动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,,贪心没有状态推导,而是从局部直接选最优的,
2025-03-04 17:19:26
785
原创 07 搜索(BFS和DFS)图的遍历
引用链接:https://blog.youkuaiyun.com/weixin_43955293/article/details/126445861。
2025-03-04 16:28:51
366
原创 代码随想录训练营--(链表)
什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的类型:单链表,双链表,循环链表。不定义构造函数行不行,答案是可以的,C++默认生成一个构造函数。
2025-03-04 09:45:35
366
原创 代码随想录训练营第二天(数组)
209.长度最小的子数组题目建议: 本题关键在于理解滑动窗口,这个滑动窗口看文字讲解 还挺难理解的,建议大家先看视频讲解。拓展题目可以先不做。
2025-03-01 17:27:05
249
原创 05 英雄C++ STL 编程(下)
Map 的内部结构是红黑树,这使得它具有很多优点。首先,数据是有序的,这有助于高效地进行查找、插入和删除操作。查找、插入、删除的平均和最坏时间复杂度都是 O (log n),其中 n 是 map 中元素的个数。Map 是 C++ 中非常重要的关联容器之一。它以键值对的形式存储数据,其中每个键都是唯一的,这意味着不能有重复的键。如果尝试插入一个已存在的键,将会覆盖该键对应的值。二进制“<”:“const _Ty”不定义该运算符或到预定义运算符可接收的类型的转换。map底层的红黑树节点中的数据,使用。
2025-03-01 15:32:29
301
原创 06 树形数据结构
这个条件判断是LCA算法的核心实现,通过逆向路径比对,能够高效地找到最近公共祖先并计算节点间距离。代码逻辑考虑了所有可能的路径交叉情况,是二叉树相关问题的经典解决方案。寻找两个节点的最近公共祖先(LCA),然后计算它们之间的距离。Time Limit Exceeded 时间超出限制。每一层是上一层的两倍。不断分解,先设置左子树。
2025-02-22 22:06:06
522
原创 06 树形数据结构(上)
队列配合实现树的建立。例子:abc##de#g##f###if (data!= '#') {// 申请一个树节点// .的优先级高于*// -> 和 (*). 是等价// 申请一个队列节点//在队列节点中,保存刚创建的新节点的位置if (proot == NULL) { //根节点else {else {pos.pop();if (proot!char data;//不可以。
2025-02-21 21:44:12
351
原创 05 递归于分治
f(n)种方案=到n-1级的f(n-1)种方案+ 到n-2级的f(n-2)种方案。没有办法用全局的角度分析问题,用分治法。137的指数形式如何得到?
2025-02-20 18:06:55
315
原创 02 排序和查找
sort函数用于C++中,对给定区间所有元素进行排序,默认为升序,也可进行降序排序。sort函数进行排序的时间复杂度为n*log2n,比冒泡之类的排序算法效率要高。
2025-02-20 10:51:16
203
原创 02英雄C++零基础(下)
*0X00000004|0X00000008|...|...|...|...|...|...| 内存地址10 20 变量值a b 变量名0x00000010|0x00000011|0x00000012|0x00000013 内存地址0X00000004 变量值pa 变量名*/int a = 10;int b = 20;// 1. 指针变量的定义// 数据类型 * 指针变量名;int* pa;pa = &a;// pa = &b;//可以多次赋值。
2025-02-19 16:58:16
364
原创 01 枚举和模拟
vector是表示可变大小数组的线性序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小。为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务。
2025-02-16 22:20:22
858
原创 02排序与查找
1、整数奇偶排序输入 10 个整数,彼此以空格分隔。sort的应用:2、成绩排序2给定学生的成绩单,成绩单中包含每个学生的学号和分数,请将成绩单按成绩从低到高的顺序重新排序。如果学生的成绩相同,则按照学号从小到大的顺序进行排序。
2025-01-26 22:39:19
360
原创 3542. 查找 (使用二分查找实现)
给定一个长度为 n 的数组 a1,…,和一个长度为 mm 的数组 b1,…对于每一个 bi,请你查找其是否在数组 a 中出现过。
2025-01-25 21:23:23
222
原创 KY158 找x
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。注意:有点OJ系统可能不支持find()函数。
2025-01-25 20:55:36
148
原创 3376. 成绩排序2
给定学生的成绩单,成绩单中包含每个学生的学号和分数,请将成绩单按成绩从低到高的顺序重新排序。接下来 NN 行,每行包含两个整数 pp 和 qq,表示一个学生的学号和成绩。如果学生的成绩相同,则按照学号从小到大的顺序进行排序。第一行包含整数 NN,表示学生数量。学生的学号各不相同。
2025-01-25 20:24:46
196
原创 KY25 剩下的树
描述:有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。
2025-01-23 15:01:28
215
原创 KY20 完数VS盈数
描述:一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。若因子之和大于该数,则称其为“盈数”。求出2到60之间所有“完数”和“盈数”。
2025-01-23 12:58:19
188
原创 KY6 手机键盘
描述:按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下 如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。现在给出一串字符,需要计算出它所需要花费的时间。图片。
2025-01-16 22:15:32
414
原创 KY5 反序输出
描述:输入任意4个字符(如:abcd), 并按反序输出(如:dcba)输入描述:题目可能包含多组用例,每组用例占一行,包含4个任意的字符。
2025-01-16 19:25:44
196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1