- 博客(7)
- 收藏
- 关注
原创 84页案例3.1:数制的转换
自我总结:整道题是用C语言写的,之前写的数据结构题发现都是C语言和C++混着写,这样导致看着挺高级,但是不知道什么C语言不能用,所以以后写数据结构题统一用C语言,这就包含今天练的题里面的函数&和*的使用了,还有->和.,malloc和new等等,以后慢慢都要区分开来。1. ✅ 支持任意进制转换:将 8 替换为输入参数,实现“十进制转任意进制”。📚关键词:C语言、数据结构、栈、顺序栈、数制转换。🔍思路来源:数制转换与栈的“先进后出”原理。2. 每次的“余数”是八进制的一位;3. 但余数的顺序是“倒序”的;
2025-11-09 17:01:57
324
原创 数据结构之栈在括号匹配中的应用
给定一个只包含括号字符的字符串,请判断该字符串中的括号是否匹配。括号匹配的规则如下:左括号必须由相同类型的右括号闭合;括号必须以正确的顺序闭合;{[()]}是合法的,{[(])}或((()是不合法的。
2025-10-25 18:04:31
401
原创 洛谷P1059 [NOIP 2006 普及组] 明明的随机数题解
1.第一种方法:我采用的是先排序再去重的方法解这道题,注意这道题去重的方法,自己没有把这道题去重的方法写出来,是看了题解以后才理解了去重的方法。unique之后a数组前面为无重复元素的数组,后面是重复元素移到后面,直接完成去重。2.第二种方法:直接用STL中的unique函数,简单方便,直接AC掉。3.第三种方法:STL的set容器,set里面的元素不重复并且还有序。从题中学习STL中的函数和容器,比一般的方法简单还好用。
2025-03-29 17:55:19
229
原创 788. 逆序对的数量题解
这道题总体就是在归并排序模板上面增加了求逆序对对数的一些代码,本质不变,上面求逆序对的三种情况是关键,如果找不到求逆序数对数的方法,就不知道用哪种算法解题,不知道用排序中的什么排序来解。同上个题第k个数,都是在基础的排序思想本质方法上进一步剖析,加入这道题独有的题干分析内容。3.左右内部各有一个数组成的逆序对数量是q[i]>q[j]时,i-mid中间的数都大于q[j],i-mid中间的数的个数为mid-i+1。逆序对有三种情况,1.左半边内部的逆序对数量merge_sort(l,mid)
2025-03-29 16:35:21
390
原创 洛谷P1923 【深基9.例4】求第 k 小的数题解
两段代码区别在j-l+1是>=k还是>k,因为k从0开始计数,所以第j-l+1小的元素实际上是左半部分的下一个元素(即右半部分的第一个元素)。因此,k等于j-l+1时,第k小的元素应该在右半部分。每个算法都会衍生很多题,每道题稍微变一下也会变成不同的题, 重要的是理解每道题的本质,注意边界条件也有很大因素成为你AC与不AC的关键。3.用yxc的快速选择排序算法AC不了,本题中最小的数是第 0 小,yxc的这道题最小的数是第1小,修改后还是出现下面的问题。1.先用快排,再直接把第k小的数输出出来(我的方法)
2025-03-29 12:37:27
654
原创 洛谷题解P1271 【深基9.例1】选举学生会
刚开始用的方法是yxc学长讲的快速排序,发现AC不了,然后通过deepseek发现问题是时间超限了,因为快速排序的平均时间复杂度是O(m log m),但在最坏情况下可能达到O(m^2),当m很大时(如题目中的m ≤ 2000000),这可能会导致性能问题或超时。学校正在选举学生会成员,有 n(n≤999)名候选人,每名候选人编号分别从 1 到 n,现在收集到了 m(m≤2000000)张选票,每张选票都写了一个候选人编号。如果还不够快,可以用计数排序,特别适合处理数值范围有限的大规模数据排序问题。
2025-03-29 10:17:02
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅