- 博客(99)
- 收藏
- 关注
原创 蓝桥杯之c++入门(六)【string(practice)】
在while(cin>>s)语句中,循环的条件部分检查cin流的状态。如果流成功读取到一个值,cin >〉s返回的流对象cin 将被转换为true,循环将继续。如果读取失败(例如遇到输入结束符或无法读取到一个值),cin>〉s返回的流对象cin 将被转换为false,循环将停止。有时候处理一个字符串的时候,也不一定要一次性读取完整个字符串,如果字符串中有空格的话,其实可以当做多个单词,一次读取。当然也可以将这个字符串逆序后和原字符串比较,看是否相等,如果相等就是回文字符串,否则就不是。
2025-02-06 22:59:15
658
原创 蓝桥杯之c++入门(六)【string】
前面介绍了通过字符数组保存字符串,然后对字符数组中的字符串做各种操作;为了更加简单方便,在CC++中,又增加了 string 来处理字符串。正文开始这期我们详细讲解了string在竞赛中常见的操作方法,下期我们会用相应的练习来进一步理解string,下期见;
2025-02-06 17:10:34
832
原创 蓝桥杯之c++入门(四)【循环】
本章会详细介绍每种语句和操作符的语法和使用方法,还会通过大量实例和练习题,帮助读者理解如何在实际编程中灵活运用这些工具。无论你是初学者,还是希望在算法竞赛中提升逻辑控制能力的进阶学习者,本章内容都将为你提供宝贵的指导。让我们一起开启这段探索条件判断与循环控制的编程之旅,为你的程序增添更多智能和效率;C++\mathsf{C}\substack{++}C++ 中有3种循环语句, while 就是其中一种,接下来就介绍一下 while 语句。while 语句的语法结构和 if 语句非常相似,但不同的是 whi
2025-02-02 22:56:30
1093
原创 蓝桥杯之c++入门(三)【条件判断】
在编程的世界中,条件判断与循环控制是构建复杂程序逻辑的基础。它们能够帮助我们根据不同的条件执行不同的代码路径,。本章将深入探讨C/C++语言中条件判断和循环控制的多种方式,包括if-else语句、关系和逻辑操作符、switch语句,通过这些工具,我们可以实现复杂的逻辑控制和重复任务的自动化。用于比较的表达式,称为 “关系表达式”(relational expression),里面使用的运算符就称为“关系运算符”(relational operator),主要有下面6个。运算符描述。
2025-02-02 17:40:00
1396
原创 蓝桥杯之c++入门(二)【输入输出(上)】
编程的世界里,输入与输出是程序与用户交互的桥梁。无论是简单的数据处理,还是复杂的算法实现,输入输出始终是不可或缺的环节。本章将深入探讨C/C++语言中输入输出的多种方式,从基础的getchar和putchar函数,到功能强大的scanf和printf,再到C++特有的cin和cout流对象,我们将逐步剖析它们的使用方法、特点以及适用场景。正文开始本章对C/C++中的输入输出进行了全面而深入的讲解。
2025-02-01 16:49:00
1459
原创 蓝桥杯之c++入门(一)【C++入门】
这期紧接着前面的,因为之前系统的学过c++,所以蓝桥杯中的c我们就过一遍即可;系统的C++请看C++专栏。
2025-01-30 23:42:42
2720
原创 如何让Dev-C++支持C++11及以上标准
在Dev-C++中使用C++11/17/20新特性(如`pop_back()`等)时,可能出现编译错误:
2025-01-26 23:51:37
638
原创 蓝桥杯之c++入门(一)【数据类型】
上一期我们通过一个简单的c++程序了解到了c++的main函数,头文件,名字空间,这期我们继续来了解c++的数据结构。这期我们主要介绍了c++中的数据类型,下期见。
2025-01-26 23:32:46
1100
1
原创 Dev-C++分辨率低-解决办法
Dev-C++因版本老旧(长期未更新),在高分辨率显示器上存在界面模糊问题。通过修改Windows兼容性设置可优化显示效果。然后点击【应⽤】、【确定】就可以了。
2025-01-26 23:32:30
535
原创 蓝桥杯之c++入门(一)【变量和常量】
前面我们了解了C/C++的数据类型及大小,我们继续来看变量和常量;# define 常量名 内容#define M100#define PI3.14159int main()return 0;这⾥定义的 M、CH、PAI 都是常量,可以直接使⽤,但是不能被修改。使⽤ #define 定义常量的时候是不关注类型的,只关注常量的名字叫啥,常量的值是啥,编译在处理这种常量的时候就是直接替换,在出现常量名字的地⽅,通通替换成常量的内容。
2025-01-25 23:52:16
805
原创 蓝桥杯之c++入门(一)【第一个c++程序】
从今天开始更新关于蓝桥杯备赛的相关文章,这个系列不会从头到尾彻底的学习c++,但是可以带领大家讲c++主要在竞赛中用的语句和语法详细的过一遍,所以需要有一定的语言基础,本人也通过文章来打卡学习;这期我们主要讲了c++入门的知识点,并加以练习;下期见。
2025-01-25 23:51:38
1357
原创 ListOJ14:环形链表II(寻找环的入口点)
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。
2025-01-23 15:35:44
1628
原创 ListOJ13:环形链表(判断是否为环形链表)
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。
2025-01-23 09:31:30
1394
原创 StackOrQueueOJ4:设计循环队列(用数组或顺序表)
设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列为空,返回 -
2025-01-22 16:27:51
394
原创 StackOrQueueOJ3:用栈实现队列
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false
2025-01-21 22:57:53
520
原创 Java基础(五)【方法】
这期我们来学习Java中很重要的一个知识,就是方法,那什么是方法呢?方法(method):就是完成特定功能的代码块如何理解这句话呢?来,我们看一段代码,相信这个大家应该已经很熟悉了这就是我们的main方法,也就是我们说的主方法。它里面的代码的功能:是在控制台输出一个字符串数据:HelloWorld我们再来看另一段代码:这里出现了三个方法,主方法的作用,还是在控制台输出一个字符串数据:HelloWorld。而后面这两个方法的作用:分别是在控制台输出字符串数据:method1和method2。
2025-01-21 22:57:44
1006
原创 StackOrQueueOJ1:有效的括号
给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。
2025-01-20 17:56:47
270
原创 StackOrQueueOJ2:用队列实现栈
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
2025-01-20 17:56:34
812
原创 初阶数据结构【队列及其接口的实现】
上一期我们讲到了栈,这期我们继续讲解与其相似的结构——队列这期我们用C语言实现了队列的基本操作,我们发现队列与栈有很多相似的地方,在实际应用中我们灵活运用;下期见;26考研加油!
2025-01-14 23:53:14
614
原创 OJ12:160. 相交链表
请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。
2025-01-14 23:52:59
716
原创 初阶数据结构【栈及其接口的实现】
前面我们学习并实现了顺序表与链表的接口,顺序表与链表都是线性表的一种,即在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的;这期我们继续来介绍一种特殊的线性表——栈;这期我们用C语言实现了栈的几个基本接口,我们有了前面的基础,我们发现这并不是很难;下期见!26考研加油!
2025-01-13 23:43:15
826
原创 初阶数据结构【双链表及其接口的实现】
前面我们介绍了数据结构中的链表,并实现了我们在实际中最常用的两个链表之一——无头单向非循环链表,这期我们继续来用C语言实现第二个常用链表——带头双向循环链表;26考研一战成硕!
2025-01-13 12:55:59
1035
原创 Java基础(四)【循环语句】
在这个模块中,我们将深入探讨Java编程语言中循环的基本概念和应用。循环是编程中不可或缺的一部分,它们允许我们执行重复的任务,而无需手动编写大量的重复代码。通过本笔记,你将学习到如何有效地使用Java中的循环结构来简化代码,提高程序的效率和可读性。学习Java循环结构是编程中的一个重要环节,因为它允许你重复执行代码块,直到满足特定的条件。这对于处理数组、集合以及需要重复执行任务的场景非常有用。
2024-12-10 21:25:34
923
原创 Java基础(三)【选择语句】
为了控制程序的执行流程,Java 就提供了一些流程控制语句,选择、顺序、循环等,这期我们主要来看java中的选择语句;这期我们主要讲解了java中的选择语句,下期见。
2024-12-10 21:22:19
949
原创 Java基础(一)【第一个Java程序和IDEA的安装】
虽说我是准备走C++路线的,但应学校的要求,我又不想糊弄过去,还是决定学一点java的基础部分,以便完成java的期末作业Java是一门非常优秀的计算机语言语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java之父:詹姆斯·高斯林(James Gosling)知道了Java是什么之后,大家就会想,我们学完Java可以做什么呢?1:JavaSE提供基础的Java开发工具和库,包括核心Java API、编译器、文档生成器等。
2024-12-09 10:00:00
1013
原创 OJ11:CM11 链表分割
现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。,为了尾插迭代的统一,我们可以使用。,我们不难想到做法,我们可以。
2024-11-15 09:37:25
659
原创 OJ10:21. 合并两个有序链表
我们需要将两个有序链表合并成一个有序链表,我们可以先定义给一个空的头指针,然后再通过迭代,将分别从两个链表中选取较小的进行尾插,根据前面:单链表接口的实现我们知道尾插我们要进行一个找尾的操作,这里我们可以定义一个指针tail指向这个每次合并后的尾节点,方便下次插入,这样就可以完美解决这个问题了:
2024-11-15 09:35:14
736
原创 OJ08题:876. 链表的中间结点
过程简单,这题主要在于我们怎样让循环停下来,我们来分析一下:我们先来看一下有奇数个节点:我们可以看到,当slow指向中间节点的时候fast->next = NULL,这时候循环结束有偶数个节点:这个时候当slow指向中间节点的时候,fast指向NULL;对这两种情况分析我们知道,当fast指向NULL或fast->next=NULL时,循环结束,此时,slow指向的节点为中间节点,
2024-11-12 10:16:24
397
原创 分享一个OJ题调试小技巧
我们在有关链表的OJ题的时候可能并不能一次就找到正确的写法,这个时候我们就要将代码复制一份到编译器里进行调试,这个时候我们要重新创建链表可能会浪费大量的时间,这个时候我会用快速而有效的方法来创建链表进行调试和运行:
2024-11-11 09:45:00
232
原创 OJ07:203. 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。但是如果第一个节点就是val,此时prev为NULL,此时我们不能对prev进行解引用,那我们又当如何呢?输入:head = [1,2,6,3,4,5,6], val = 6。输入:head = [7,7,7,7], val = 7。输入:head = [ ], val = 1。输出:[1,2,3,4,5]
2024-11-11 09:30:00
729
原创 OJ06:206.反转链表
前面我们学到了单链表的相关的概念和接口的实现,今天,我们来看一下单链表中最经典的一道算法题:反转链表;给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例:我们假设是这样的一个链表:方案一:迭代思路分析定义3个链表指针:❤struct ListNode* n1 = NULL,* n2 = head, * n3 = head->next;我们通过循环迭代的方式来将其原地反转:反转:迭代:方案二:递归这种方法理解起来有点困难:比较难以表达,这里展示一下代码:如有问
2024-11-08 11:22:27
436
原创 初阶数据结构【单链表及其接口的实现】
在前面我们学到了数据结构中一个简单的数据结构—顺序表,通过我们对其的了解,我们不难知道,其实顺序表就是一个可以动态增长的数组,但是我们在对其进行增容时,往往增容是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。这期我们主要介绍了链表的相关概念和单链表的接口实现,下期我们将实现常用链表之一的双链表的接口实现;最后,祝26考研一战成硕,加油!
2024-11-08 09:00:00
1374
原创 OJ05:989. 数组形式的整数加法
两个数相加,我们首先要考虑结果存在哪,我们该开辟多大的空间;我们知道两个数相加,结果的位数最大不会超过两个加数中最大的位数+1;输入:num = [1,2,0,0], k = 34。num 是按照从左到右的顺序表示其数字的数组。输入:num = [2,7,4], k = 181。整理以上的思路:所以循环体我们可以这样写。解释:1200 + 34 = 1234。当然,这种算法可以过leetcode的。解释:274 + 181 = 455。输出:[1,2,3,4]输出:[4,5,5]
2024-11-07 09:00:00
416
原创 OJ04:80. 删除有序数组中的重复项 II
nums[cur]==nums[prev],如果prev所对应的flag为1,可将nums[cur]放入prev下一个位置,prev++, ++flag。解释:函数应返回新长度length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。输入:nums = [0,0,1,1,1,1,2,3,3] 输出:7, nums = [0,0,1,1,2,3,3]输入:nums = [1,1,1,2,2,3] 输出:5, nums = [1,1,2,2,3]删除重复出现的元素,使得。
2024-11-05 22:03:38
973
原创 OJ03:26.删除有序数组中的重复项
删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。此时prev指向的是最后一个目标元素的,即是最后一个目标元素的下标,所以目标元素的个数是prev+1个,返回++prevj即可;:函数应该返回新的长度 2 ,并且原数组 nums的前两个元素被修改为 1, 2。=nums[prev],将nums[cur]放入prev的下一个位置,更新prev。定义变量 int prev=0,cur=1,nums[cur]与nums[prev]逐一比较。排列 的数组 nums ,请你。
2024-11-05 09:30:00
381
原创 OJ02:数组移除元素
所谓的暴力求解法,就是直接循环遍历整个数组,如果找到了与val相同的元素,就将这个元素后面所有的元素都向前移动,这样不仅可以覆盖到与前面的val相同的元素,还可以做到。我们让arr[src]的值覆盖arr[dest],即arr[dest] = arr[src],并且让src++、dest++;当arr[src] == val时,只让src++;好的代码都是我们慢慢探索,慢慢的去优化的,加油,你我同在路上。输入:nums = [3,2,2,3], val = 3。输出:2, nums = [2,2,_,_]
2024-10-30 23:36:58
683
原创 初阶数据结构【顺序表及其接口的实现】
在信息技术迅猛发展的今天,数据结构作为计算机科学的核心领域之一,扮演着至关重要的角色。数据结构不仅关系到程序设计的效率和质量,更是算法实现的基石。在众多数据结构中,顺序表以其简洁直观的特点,成为最基本且广泛使用的结构之一。顺序表通过使用连续的内存空间来存储数据项,每一项都可以通过索引快速访问。这种结构不仅实现了数据的有序组织,还提供了高效的数据检索功能。从实现角度来看,顺序表通常借助数组来实现,这使得它在多种编程语言中都能轻松地被操作和理解。
2024-10-24 09:43:13
996
原创 OJ01:只出现一次的数字
剑指 Offer 56:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求[时间复杂度](https://so.csdn.net/so/search?q=时间复杂度&spm=1001.2101.3001.7020)是O(n),空间复杂度是O(1)。
2024-10-19 13:19:11
1167
我们在学习c语言时,我们应该会灵活运用多个编译器,小熊猫c++就是如此
2024-08-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人