- 博客(25)
- 收藏
- 关注
原创 动态规划讲解
动态规划(Dynamic Programming,简称 DP)是一种求最优解的方法,通过将复杂问题分解为相对简单的问题,并存储子问题的解,以便在下次需要同一个子问题的解时直接查表,根据子问题的解求出原问题。核心是“最优子结构”和“重叠子问题”两个特性。它和递归的区别在于:递归是自顶向下重复计算子问题(先递把大问题分解成小问题,直到触达递归终止条),而动态规划是自底向上先解决小问题,再用小问题的解推导大问题的解,通过 “记忆化存储” 大幅降低时间复杂度。
2025-12-24 22:34:43
775
原创 c语言-static和extern
1.extern的核心是“共享”:用于声明外部符号(变量/函数),实现跨文件访问,依赖外部链接属性;2.static的核心是“限制”与“延长”:限制符号作用域为当前文件(内部链接),延长局部变量的存储周期;3. 实际开发中,应遵循“最小权限原则”:仅需跨文件共享的符号用extern声明(或默认外部链接),仅当前文件使用的符号用static修饰,减少全局符号冲突,提升代码可维护性。
2025-12-24 20:51:15
487
原创 c语言-三角形判断
∙ ∙如果三角形是等边三角形,则输出 Equilateral triangle!∙ ∙如果三角形是等腰三角形,则输出 Isosceles triangle!在一行上输入三个整数 a,b,c(0<a,b,c<10)a,b,c(0<a,b,c<10),表示三角形的三条边。∙ ∙如果三角形是普通三角形,则输出 Ordinary triangle!∙ ∙如果不能构成非退化三角形,则输出 Not a triangle!,如果能构成,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。
2025-12-24 19:05:58
112
原创 数据结构-递归算法
递归(Recursion)是程序设计中的一种重要思想,指的是的编程技巧。其核心逻辑是“大事化小”——将一个复杂的大问题,拆解成与原问题结构相同但规模更小的子问题,直到子问题小到可以直接解决(即递归终止条件),再通过子问题的解反向推导得到原问题的解。形象地说,递归就像“俄罗斯套娃”:每个套娃的结构都相同,打开外层套娃会看到更小的套娃,直到打开最里面的小娃娃(终止条件),整个拆解过程就结束了。
2025-12-24 11:25:33
468
原创 c语言-根据输入的年份和月份,计算并输出该月份的天数
这段C语言代码实现了根据年份和月份计算该月天数的功能。核心逻辑是:1)定义平年各月天数的数组;2)通过月份下标直接获取初始天数;3)判断闰年条件(year%4==0且year%100!=0或year%400==0);4)若为闰年且2月则天数加1。主函数接收用户输入的年月,调用计算函数并输出结果。该代码简洁高效地解决了日期计算问题,特别处理了闰年2月的特殊情况。
2025-12-24 11:21:05
48
原创 c语言函数详细讲解
返回值类型 函数名(参数列表) {函数体;// 实现功能的代码return 返回值;// 若返回值类型为void,可省略return返回值类型:指定函数执行完成后返回的数据类型,可是int、char、float、double等基本数据类型,也可以是数组、指针、结构体等复杂类型;若函数不返回任何值,需指定为void。函数名:函数的标识,用于调用函数,命名需遵循C语言标识符规则(由字母、数字、下划线组成,不能以数字开头,区分大小写),建议命名规范、见名知意。
2025-12-23 13:51:55
815
原创 c语言将三个整数数按从大到小输出
本代码通过比较交换的方式,将输入的三个整数按从大到小的顺序排序并输出,逻辑直观易懂,适配空格分隔的输入格式,满足题目要求。
2025-12-22 22:18:34
221
原创 c语言数组
数组是“同一类型数据的集合”,比如用一个变量存1个整数,数组能存一组整数。核心优势:用连续内存存储,通过“数组名+下标”快速访问元素,不用定义多个单独变量。关键特点:1. 元素类型必须相同(不能又存int又存char数据类型)2. 内存连续(元素挨在一起放)3. 下标从0开始(第一个元素是下标0,不是1)数据类型 数组名[元素个数];例子:存5个整数int arr[5];(arr是数组名,int是数组储存元素类型,5是数组能储存元素个数,能存arr[0]到arr[4])存3个字符。
2025-12-22 14:16:46
1105
原创 猜数字游戏-随机数生成
C 语言产生随机数依赖,且必须引入对应头文件:1.rand()函数:生成基础随机数RAND_MAX返回随机整数:发现每次生成的随机数完全固定。
2025-12-21 10:59:49
1458
原创 找到100-200之间的素数
举例:101:大于 1,无法被 2~100 之间的任何整数整除,只能被 1 和 101 整除4:大于 1,但能被 2 整除(因数有 1、2、4),不是素数(这类数称为。
2025-12-20 13:53:50
576
原创 c语言学习
本文系统介绍了C语言的基础知识,包括数据类型、变量、运算符、控制结构等核心内容。首先讲解了C语言的基本概念、历史背景和开发环境配置。然后详细阐述了变量声明、初始化及作用域规则,以及整型、浮点型、字符型等数据类型的特性。在运算符部分,全面解析了算术、关系、逻辑、位运算等各类运算符的优先级和使用方法。控制结构章节重点讲解了if条件语句和循环语句的语法与应用场景。此外,文章还涵盖了字符与ASCII编码的关系、字符串处理、输入输出函数(scanf/printf)的使用技巧及常见问题。最后介绍了常量定义、枚举类型等进
2025-12-18 11:35:48
872
原创 二叉树基础学习
1.什么是二叉树二叉树是,它的核心特征是每个节点最多只有两个子节点,分别被称为和。一个二叉树要么是空树(没有任何节点),要么由一个子节点有严格的左右顺序,不能随意颠倒(比如某个节点的左子节点和右子节点交换后,会变成一棵不同的二叉树)。2. 二叉树的基本术语例子:这棵树的深度是,因为最远叶子节点是D,从根A到D的路径包含A、B、D三个节点。3.常见的二叉树类型满二叉树:一棵深度为 k 的二叉树,若所有非叶子节点都有两个子节点,且所有叶子节点都在同一层,则称为满二叉树。
2025-12-17 20:35:14
1064
1
原创 LeetBook合并两个有序链表
这也是合并两个有序链表的关键优化点 —— 剩余节点本身已经有序,无需再逐个比较,直接拼接即可。新链表是通过拼接给定的两个链表的所有节点组成的。(它已经被连接到结果链表中了),不存在 “指针不见了” 的问题。关键:“指针变量” 和 “节点” 的生命周期无关。只是改变了「指针变量 list1」的指向,7.为什么需要两个指针(h 和 cur)?题目:将两个升序链表合并为一个新的。循环过程拆解(每一步的指针变化)
2025-12-17 11:13:12
910
原创 数据结构-链表
链表分为单链表,双链表,循环链表,默认指的是单链表。单链表是一种这些节点的地址既可以是连续的也可以是不连续的,每个节点通过指针域表示元素之间的序列关系。链表的基本操作包括:创建节点、初始化链表、插入、删除、查找、遍历、销毁等。单链表分为不带头结点和带头结点两种形式。例如,head=[1,2,3,4],其不带头结点的单链表如图所示,,结点的序号依次为 0~3。带头结点的单链表通过头结点地址标识,其中头结点不存储序列元素,头结点的next。
2025-11-13 19:40:32
752
原创 小白第一天学Qt写hello world程序
6添加文件,在项目名称上单点鼠标右键,在弹出菜单中选中Add New,然后文件和类中选择C++,C++ Source File,点击Choose后,输入文件名main,确认。5创建成功后,可以发现空项目中只有一的Helloworld.pro文件,我们输入QT+=widgets 并保存。7发现项目中多了一个Sources文件夹,里面有一个main.cpp,打开输入代码。2设置项目名称和路径,路径建议多设置一级方面以后添加图片文件好找到项目文件。从空项目开始手动创建,编写hello world 程序。
2025-11-12 10:27:47
148
原创 数据结构——时间复杂度与空间复杂度
时间复杂度是描述算法运行时间增长趋势的度量。它主要关注当算法的输入规模(比如要处理的数据量大小)变化时,运行时间如何随之变化。例如,当我们对一个数组进行排序操作,数组的长度就是输入规模。随着数组长度的增加,排序所花费的时间也会增加,时间复杂度就是用来衡量这种增加的趋势。
2025-05-19 18:26:28
706
原创 深度理解原码,反码,补码(包你学会)
原码、反码和补码是计算机中表示有符号整数的三种编码方式。它们的出现是为了方便计算机进行二进制运算,同时解决负数的表示和处理问题。
2025-04-17 15:57:56
3573
4
原创 java数据类型
复制数据类型存储大小取值范围(示例)用途byte1 字节-128 到 127存储小整数short2 字节-32768 到 32767存储稍大整数int4 字节-2^31 到 2^31-1最常用整数long8 字节-2^63 到 2^63-1存储非常大的整数float4 字节±1.4027E-45 到 ±3.4028E+38单精度浮点数double8 字节±4.9407E-324 到 ±1.7977E+308双精度浮点数char2 字节0 到 65535(Unicode)
2025-04-16 12:01:16
451
原创 C语言编写程序计算某年某月某日是该年中的第几天
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
2024-08-20 22:59:27
947
原创 C语言趣味小程序——无法实施的奖励
如果我们每次要在格子里放2的n次方颗麦粒,我们应该放在第几个格子里嘞。由此想出一个c语言小问题。因为1颗麦粒放第一个格子,2颗麦粒放第二个格子,而我们放的麦粒数是2的n次方,我们可以设两个变量int number=1,count=1,用count和我们我们要放的麦粒数X比较,如何count小于X,我们就然count乘2,在和X比较,同时number自加一。直到count大于X时循环结束。他说:在棋盘的第一个格子里放1颗麦粒,第2 个格子放2颗麦粒,第三个格子放4颗麦粒,第四个格子放8颗麦粒。
2024-07-24 15:48:38
305
原创 C语言必会算法之一二分法
当我们在普通无序数组查找一个是否存在的值时,我们会用循环依次遍历整个数组。当我们要查找的数组是一个有序数组的话,若数组元素是几千,几万个的话,效率就太慢了,我们就可以用二分查找法。二分法,顾名思意,每次找到有序数组中间位置的值,用它把数组分成两部分,把它和我们要找的数比较,若相等,则找到;若中间值大于我们要找的数,那么我们就可以把中间值左边的值都忽略,不用比较了,把剩下的数组元素再找出中间位置的值,再按上面步骤进行;
2024-07-20 22:03:03
250
原创 如何理解第一个c语言代码
是 "Standard Input Output" 的缩写,是C语言标准库的一部分,包含了进行输入输出操作所需的函数和宏定义。c语言是一种广泛使用的一种高级编程语言,以语法简洁和高效性能而闻名。函数非常灵活,支持多种格式说明符,可以用来打印不同类型的数据,并且可以控制输出的宽度、精度等,非常重要。函数,scanf函数。要想在主函数(main)中使用printf函数,在有文件中就必须包含它。是C语言中的一个预处理指令,用于包含标准输入输出库的头文件,2.printf 函数是打印输出文本的函数,显示输出结果。
2024-07-13 20:11:44
627
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅