- 博客(64)
- 收藏
- 关注
原创 [笔试训练](十)
题目:题解:1.中心扩展算法:每个字符都可以尝试作为中心点看,会出现两种情况:可能是类似 aba 的字符串,也可能是类似 abba 的情况只需要分别计算出以一个和两个字符作为中心点的子串,取出较大的长度即可从left到right开始向两边扩散、比较,如果相等则继续扩散比较如果不相等则剪枝,不用再继续扩散比较计算每次比较的回文子串长度,取最大。
2024-04-28 14:55:58 834
原创 [笔试训练](九)
2.状态转移方程(根据最后一步划分情况):到i台阶,可从i-1台阶跳一格到i台阶,也可从i-2台阶跳两个格到i台阶,两种情况相加即可得到dp[i]。将输入的数字,每次模上10,从个位开始取每一位数,把数变成字符依次加到字符串ret上,同时标记好每加3个数字,就加一个逗号,最后将ret倒序输出。空间优化:参考斐波那契数列Fib[n]=Fib[n-1]+Fib[n-2],可借助a,b,c向右滚动实现c=a+b求到i台阶一共多少种方式。1.状态表示:dp[i]表示:到达i号台阶的时候,一共有多少种方式。
2024-04-27 13:52:56 349
原创 [笔试训练](八)
题目:题解:求最小公倍数公式:lcm(a,b)=a*b/gcd(a,b),gcd(a,b)为a,b之间的最小公因数,递归求最小公因数。
2024-04-26 19:47:51 317
原创 [笔试训练](七)
1.枚举:排序后,将可能的三角形边长组合列出来,可以看出来,当枚举的几个例子满足后,其他几个例子同样满足,可以省去这些例子的判定。边遍历边记下遇到的数字串,数字串中断时,更新ret为至今最长的字符串。
2024-04-26 16:21:03 188
原创 [笔试训练](六)
题目:题解:由于相加超过10要进位,因此需要从从后往前将每个数相加得到tmp,超过10时,该位只放tmp%10后的结果,同时将tmp/=10,进入下一位的相加中。
2024-04-25 10:02:53 232
原创 [笔试训练](五)
题目:题解:组成一个you需要一个o且能得2分,而组成相邻字母oo需要两个o,只能得1分。优先考虑组成尽可能多的you,再考虑剩下的o,放一起。
2024-04-24 10:35:38 243
原创 [笔试训练](四)
题目:题解:1.创建一个数组fib[],保存范围内的所有斐波那契数,再求离N最近的斐波那契数。2.创建3个数a,b,c,依次先后滚动,可得出所有的斐波那契数,当N落在b,c之间时,停止滚动,再求N离b,c哪个近。
2024-04-23 14:30:00 194
原创 【C++】AVL树的两单旋和两双旋
如果在一棵原本是平衡的AVL树中插入一个新节点,可能造成不平衡,此时必须调整树的结构,使之平衡化。根据节点插入位置的不同,AVL树的旋转分为四种。
2024-03-20 00:26:55 894
原创 【C#】字符串拼接相关
定义一个变量存储客户的姓名,然后再屏幕上显示:“你好,xxx”,xxx代表客户的姓名。3.请用户输入用户名、年龄、班级,最后用占位符形式打印出来。按数字相加还是按字符拼接,取决于最先计算的是字符还是数字。注意:+号拼接 是用符号唯一方法 不能用-*/%
2023-11-18 19:57:28 1217 26
原创 【C#】类型转换-显式转换:括号强转、Parse法、Convert法、其他类型转string
Parse法用来将string字符串类型转换为对应的类型,要注意的是:我们填写的字符串类型必须是合法合规的,不然会报错。当我们进行字符串拼接时,就自动会调用 tostring 转成string。可以把所有其他类型的数据通过.string方式转换为string类型。:所有和数值有关的都支持低精度的去存储高精度的(用括号强转的方式)更全面的转换方式,精度更高,可以把各种类型的数据转为各种类型。主要用于数值之间,低精度转高精度,如byte转为int。如果是把字符串转成对应类型 那字符串一定要合法合规。
2023-11-17 22:45:32 1633 6
原创 【Unity】XML文件的解析和生成
XML文件是一种常用的数据交换格式,它以文本形式存储数据,并使用标签来描述数据。解析和生成XML文件是软件开发中常见的任务。解析XML文件是指从XML文件中读取数据的过程。在.NET中,可以使用类来解析XML文件。下面介绍来解析XML文件。
2023-11-17 15:29:39 1503 11
原创 【Unity】文件信息的存储和解析(C#代码)
一些游戏案例开发过程中的一些数据转换成Json格式,然后存到指定的位置1.JsonMapper.ToObject去解析json2.使用泛型来解析Json文件信息的存储和解析在同一个C#文件 JsonText.cs中,需要挂载在空物体上。新开C#文件DataSecrity.cs。
2023-11-15 20:59:28 416 13
原创 C语言中Swap函数的原理
在C语言中,交换两个变量的值通常通过一个称为"Swap"的函数来实现。这个函数的目的是将两个变量的值进行互换。这种通过指针实现的交换方式,避免了传递大型数据结构时的内存开销,因为实际上只是传递了变量的地址而非整个数据。函数使用指针作为参数,这意味着传递给函数的是变量的地址而不是实际的值。)采用指针作为参数,通过指针修改实际变量的值。来存储一个变量的值,以便在交换时不会丢失数据。,即它们的地址,交换它们的值。,可以看到它们的值已经发生了交换。在函数内部,使用一个临时变量。函数中,我们声明两个变量。
2023-11-13 15:15:00 706 2
原创 C++语言的广泛应用领域
C++的广泛应用不仅得益于其灵活性和性能,还得益于其长期的发展和演变。作为一门面向对象的编程语言,C++在不同领域的应用继续推动着技术的发展。从系统级编程到人工智能,C++的多样性和强大性能使其在许多行业都有着重要的地位。
2023-11-12 22:18:48 422 1
原创 【编程语言发展史】Python的起源和发展历史
Python的未来看似充满了机遇和挑战。作为一门全能性的编程语言,它已经在过去几十年里为各个领域提供了强大的支持。其简洁性、易读性、强大的生态系统以及庞大的社区,都是Python成功的关键因素。随着技术的不断演进和新的挑战的出现,Python社区将不断创新和适应。从科学计算到人工智能、Web开发和自动化,Python将继续在全球范围内发挥其作用,成为解决实际问题的首选工具之一。对于开发者来说,学习Python不仅仅是学习一门编程语言,更是加入一个充满活力和创造力的社区。
2023-11-12 17:36:21 1188 1
原创 [LeetCode]-622. 设计循环队列
开辟一个大小为k+1的数组,可存放k个有效元素,队列头front和队列尾rear为数组下标,边插入删除数据边移动front和rear的位置,超过数组尾时回到数组头位置形成循环达到循环队列的效果。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。设计你的循环队列实现。rear刚好到数组尾时,要在rear上插入数据,rear要循环回到数组头的位置,而不是直接rear++就完了。:当rear在数组下标为0的位置时,rear-1到-1的位置了,而队尾元素在数组尾的位置。
2023-11-11 18:27:11 578 17
原创 [LeetCode]-225. 用队列实现栈-232. 用栈实现队列
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(popst的栈顶相当于队头,pushst的栈顶相当于队尾。225. 用队列实现栈 - 力扣(LeetCode)232. 用栈实现队列 - 力扣(LeetCode)队列应当支持一般队列支持的所有操作(请你仅使用两个栈实现。
2023-11-11 12:10:06 928 9
原创 【编程语言发展史】Go语言的发展历史
在官网的首页有一个功能叫做 Go Playground,是一个 Go 代码的简单编辑器的沙盒,它可以在没有安装 Go 语言的情况下在你的浏览器中编译并运行 Go,它提供了一些示例,其中包括国际惯例 “Hello, World!这俨然形成了世界上最大的开源团队,并使该项目跻身。在 2008 年年中,Go 语言的设计工作接近尾声,一些员工开始以全职工作状态投入到这个项目的编译器和运行实现上。从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中,例如开发用于管理后端复杂环境的项目。
2023-11-10 22:31:14 403 5
原创 【数据结构】栈和队列
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。**称为栈顶,另一端称为栈底。**栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,。出栈:栈的删除操作叫做出栈。。栈的实现一般可以使用,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的代价比较小。
2023-11-09 22:10:18 454 8
原创 【编程语言发展史】SQL的发展历史
SQL语言之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。SQL语言集数据查询(Data Query)、数据操纵(Data Manipulation)、数据定义(Data Definition)和数据控制(Data Control)功能于一体。SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作。
2023-11-08 20:39:58 1905 21
原创 【Unity】零基础实现塔防游戏中敌人沿固定路径移动的功能
我们知道,在一些塔防小游戏中,敌人往往会沿着移动,我们在条路的路边会布置防御设施,攻击消灭敌人,阻止敌人到达终点。
2023-11-08 19:39:36 678 2
原创 [LeetCode]-138. 随机链表的复制
由于新链表节点上的random指向状态要和原链表节点上的相同,因此原节点后面的拷贝出来的节点的random指向的节点应该是原节点random指向节点的后面拷贝节点,置每个拷贝节点random可以用。给原链表的每个节点都拷贝一份,其中每个新节点的值都设为其对应的原节点的值,将新节点都分别插入到原节点的后面,组成了一个新链表。指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。节点组成,其中每个新节点的值都设为其对应的原节点的值。,该指针可以指向链表中的任何节点或空节点。
2023-11-07 23:59:16 152 8
原创 【编程语言发展史】Unity开发语言的历史发展
开发前期版本时,使用的是一种名为UnityScript的类似JavaScript的语言。然而,随着时间的推移,开发者社区大多数人都倾向于使用C#进行开发,Unity决定将重点放在C#上,因为C#具有更强大的生态系统、更好的性能和更广泛的开发者社区支持。因此,Unity在后续版本中逐渐弃用了UnityScript,将C#作为首选的开发语言。
2023-11-07 20:45:53 413 4
原创 【数据结构】顺序表和链表
常见的线性表:顺序表、链表、栈、队列、字符串…线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。顺序表一般可以分为:\1.。\2.
2023-11-06 22:03:55 1222 6
原创 [LeetCode]-160. 相交链表-141. 环形链表-142.环形链表II
利用快慢指针法,在头节点创建两个指针fast和slow,从头节点向后分别开始遍历,但是fast一次走两步(fast=fast->next->next),slow一次走一步(slow=slow->next),如果链表中有环,没有指向NULL的节点,fast和slow进入环后会无限循环遍历下去,因为fast遍历速度是slow的两倍,在环中,fast和slow总会遍历到同一节点,我们就可以添加一个跳出条件,当fast和slow相等时(fast==slow),证明链表中有环,返回true。
2023-11-05 21:38:37 306 24
原创 [LeetCode]-链表中倒数第k个结点-CM11 链表分割-LCR 027. 回文链表
链表中倒数第k个结点_牛客题霸_牛客网 (nowcoder.com)
2023-11-04 18:28:22 199 6
原创 [LeetCode]-876.链表的中间结点-206.反转链表-21.合并两个有序链表-203.移除链表元素
876. 链表的中间结点 - 力扣(LeetCode)
2023-11-03 19:34:36 192 12
原创 【数据结构】单向链表的增删查改以及指定pos位置的插入删除
在上面众多单向链表的实现中,很多并不实用,当需要大量的头插头删时,使用单向链表会更高效。
2023-11-02 18:34:59 340 19
原创 【编程语言发展史】C语言的诞生及其影响
在开发C语言的同时,里奇和汤普生、布朗(贝尔实验室的另一名科学家)还接受了一个新任务,就是在DEC PDP-7上开发一个多任务、多用户的操作系统,1969年,他们用汇编语言完成了这个操作系统的第一个版本,里奇受一个更早的项目Multics的启发,将这个系统命名为Unix。C语言的诞生和发展推动了计算机科学和软件工程的发展,对其他编程语言的设计产生了影响,为计算机技术的进步和发展做出了重要的贡献。总之,C语言的诞生和发展对计算机科学和软件工程领域产生了深远的影响,推动了计算机技术的进步和发展。
2023-11-01 21:39:08 430 2
原创 [LeetCode]-27. 移除元素-26.删除有序数组中的重复项-88.合并两个有序数组
上面3道题均考察了数组中指针的运用,在遇到类似问题我们可以考虑利用双指针或三指针的思路来解决。
2023-10-31 22:06:02 210 9
原创 【C】柔性数组
也许你从来没有听说过**柔性数组()**这个概念,但是它确实是存在的。C99 中,结构中的最后一个元素允许是未知大小的数组,这就叫做『柔性数组』成员。结构中的柔性数组成员前面必须至少有一个其他成员。sizeof 返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该结构的大小,以适应柔性数组的预期大小。当空间不够使用,需要增容的时候,我们可以用realloc进行增容。
2023-10-30 21:15:46 266 9
原创 【C】关于动态内存的试题及解析
在学习了关于动态开辟内存的相关知识后,下面是一些涉及到动态开辟内存程序的试题及解析(试题部分来自《高质量的C/C++编程》、笔试题)。
2023-10-26 21:43:19 223 9
大学《计算机网络》课程期末试题
2023-10-31
C语言实现通讯录(动态内存版)
2023-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人