KissKernel
KissKernel
全部文章
分类
题解(12)
归档
标签
去牛客网
登录
/
注册
KissKernel的博客
全部文章
(共10篇)
题解 | #查找组成一个偶数最接近的两个素数#
思路:先求出所有的素数存入数组,然后在数组中用双指针进行查找,找到那个差值最小的一组minleft,minright,然后循环结束后打印即可。 #include<stdio.h> #include<math.h> int is_prime(int x) { ...
C
双指针
2022-06-12
0
388
题解 | #二叉树遍历#
思路:分治思想,递归构建二叉树,构建二叉树先malloc出根节点然后再构建左子树,右子树即可。因为字符串需要构建之后指针向后移动找到下一个字符,所以需要一个count指针标记字符位置,构建之后指针向后移动,指针指向’#‘或者'\0'代表到了空节点了完成返回NULL即可 构建完成之后就中序遍历就好。...
C
字符串
分治
递归
2022-06-12
8
484
题解 | #字符统计#
使用哈希表统计字符出现次数,然后用二维数组存储字符和对应出现次数,用qsort进行排序,先用次数降序排序,当出现次数相同就用ASCII码值升序排序,最后循环输出即可。 #include<stdio.h> #include<stdlib.h> int cmp(const v...
C
字符串
哈希表
排序
2022-06-09
1
400
题解 | #输出单向链表中倒数第k个结点#
构建链表不多讲了,找到链表倒数第k个节点,需要先定义两个指针,fast 和slow,让fast先走k步,然后慢指针也开始走,直到最后fast走到NULL,slow指向的就是倒数第k个节点。 #include<stdio.h> #include<stdlib.h> type...
C
链表
双指针
链表
2022-06-09
12
853
题解 | #蛇形矩阵#
思路在于对规律的寻找,可以看出,第一行的每个元素都是(j * j+ j)/2,的到的,那第二行就是第一行去掉第一个元素然后-1,就对应到了第二行,第三行就是第一行去掉前两个元素-2,就得到了第三行,如何控制去掉第一个还是第二个呢?我们可以定义一个变量c,让j+c元素向后偏移,初始为0,每结束一行就+...
C
数组
数学
数学
2022-06-08
9
498
题解 | #汽水瓶#
这道题可以多尝试数学思维很简单就过了,假设每个瓶子一块钱,三个瓶子能换一个瓶子和那些饮料,所以饮料值两块钱,我们把瓶子都换成钱,然后找老板借一个瓶子,用手里的前买饮料,用这个借来的瓶子装饮料就可以了。答案就是n/2; 这里还会有一种问题就是不可以找老板借瓶子,也很简单,答案是(n-1)/2,因为...
C
数学
2022-06-07
5
486
题解 | #坐标移动#
思路:暴力解法,使用strtok分割字符串,然后判断每个字符串是否有效,有效就进行移动,无效则break; #include<stdio.h> int main() { char arr[10001] = {0}; gets(arr); int x = 0;...
C
字符串
2022-06-07
0
320
题解 | #合并表记录#
这题如果没有11111111的话可以使用哈希表(该题硬要用就会内存超限),但是奈何题目太无奈,我们就换种方法。 首先先定义二维数组存储输入的这个表。然后使用快排,对索引进行排序,这样就可以让索引相同的值靠在一起,方便我们合并。遍历数组,若下标小于n-1(防止越界)并且该元素与下一个元素的索引相同的时...
C
哈希表
数组
2022-06-06
23
1293
题解 | #牛牛的数组匹配#
思路大体就是滑动窗口的思想 思路:定义一个变量left和right用来指向brr数组的左边和右边,初始left=0;right=1;然后进入循环(条件就是left要一直再right的左边(left<right)并且right不能越界(right<m) 1.进入循环之后将left和ri...
C
数组
滑动窗口
滑动窗口
2022-05-06
8
1018
题解 | #添加逗号#
在这道题上尝试了不少方法,包括递归等等,最后还是选择了最笨的办法 思路是:将数字的每三位保存在一个数组中,因为n<=2,000,000,000 所以只需要一个四个int大小的数组就够了。要注意 1.输出的时候逆序输出(长度为三位,不足三位补0) 2.最后三个数字没有逗号,当数字只有三位或...
C
数组
C
C
2022-05-06
2
417