- 博客(10)
- 收藏
- 关注
原创 【C语言】【计数排序】数组拆分
给定一个整型数组,数组长度为,将数组中的元素,挑选每组中最小的元素,将所有分组中最小元素求和,合理分组使得最大。例:nums = { 1,2,3,4 }分法一:[1,2 ] [3,4 ]最小元素和:1 + 3 = 4分法二:[1,3 ] [2,4 ]最小元素和:1 + 2 = 3分法三:[1,4 ] [2,3 ]最小元素和:1 + 2 = 3最终返回4。
2025-10-07 23:48:43
551
原创 【C语言】【数据结构】用栈实现队列
如右图所示,当要出队或查看队首元素(此时为A)时,将入队栈inStack中的所有元素依次出栈,并依次入栈到出队栈outStack中,这样就实现了对入队栈inStack中所有元素的。代码看起来很多,主要的就3行:分配队列内存、分配入队和出队栈内存,栈内存分配使用其。注意在此之前要进行判空操作。销毁只需要调用栈的销毁函数,将出队栈和入队栈销毁,最后销毁队列本身。出队略有不同,除了基本的判空外,当出队栈为空时,要将入队栈所有元素。的规则,此时A为队首元素,但在入队栈inStack中,此时无法访问A元素;
2025-10-05 17:04:43
1113
原创 【C语言】【字符串】字符串转整型myAtoi函数实现
(1)const int minInt = -2147483647 - 1,之所以不直接写-2147483648,是因为再vs编译器上会将2147483648识别为无符号整型,无法在前面加负号。接着,遍历字符串直到出现非数字字符或者字符串结束,按位转化数字字符为对应的数字,转化方法也很简单,用数字字符减去字符0即可得到它对应的数字。2.前面有空格时,忽略,即:s = " 123",输出:123。3.前面的数字为0时,忽略,即:s = "00000123",输出:123。
2025-08-11 17:36:35
868
原创 【C语言】【ASCII码】无重复字符最长子串
首先,定义部分:result为最终长度,current为当前长度,start为当前子串的起始位置下标,map[256]是字符字典,用来以字符的“类ASCII码”(这里的“类ASCII码”已经在上面解释)为下标,保存每个字符最后出现的位置。例如:s = "a0b",此时s[0]为'a',s[1]为'0',s[2]为'b',在map中,map[97]为0,map[48]为1,map[98]为2。示例:给定字符串s1 = "abcabbcdef",s2 = "001",s1的最长子串为bcdef,长度为5;
2025-08-05 11:02:07
569
原创 【C语言】【字符串】整型转字符串my_itoa函数实现
所以函数中又加了一个特殊值处理, 定义一个最小整型常变量minInt=-2147483648,当value等于minInt时,直接给字符串赋值为-2147483648返回。以value = 2025为例,代码思路是对value不断取余,拿到它的最后一位数字,然后存入字符串str,且每次对value缩小10倍。以value = -2025为例,代码思路是将负数-2025转换成正数2025,再按正数的处理方法操作,涉及到负号“-”的问题,这里加一个负数标记flag,最后在字符串末尾加上“-”。
2025-08-02 10:43:34
776
原创 【C语言】【ASCII码】同构字符串
首先,对字符串s进行了冒泡排序,此处代码时间开销很大,将s中的字符按照其在ASCII码字符集中的编号由小到大排列,同时为了不改变对应关系,将t中的字符以相同的操作交换位置。先将标记1移至相同元素的最后一个,即:将标记1移至t="11223344"中第2个1的位置,再用标记2遍历后方元素,如果后方存在相同元素则不满足一对一。首先,定义了s->t和t->s的两个映射表,初始化每个元素为0,用来将字符1对应的字符2存储在下标为字符1ASCII码的位置(此处不是很严谨,后面会解释)。思路2:时间复杂度:O(n);
2025-07-30 18:00:05
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅