KissKernel
KissKernel
全部文章
分类
题解(12)
归档
标签
去牛客网
登录
/
注册
KissKernel的博客
全部文章
(共14篇)
题解 | #单词识别#
思路:使用两次map进行计数和排序,第一次map用来统计不同的单词出现的次数。注意最后一个单词要把'.'去掉,大写的字母要转换成小写的字母。第二次的multimap用来将单词出现的次数按照降序排列,因为出现次数可能会有重复的所以这里使用multimap。同时降序排序需要回传一个仿函数...
C++
排序树
2022-10-01
5
411
题解 | #链表的回文结构#
先给出一个很简单的写法,可能不满足空间复杂度是O(1),就是用栈来保存节点的数据, 第二个符合条件的解法在后面,会稍微复杂一点 首先: 1.判断栈是否是空,如果是空直接将节点数据入栈 2.如果不是空那么就判断栈顶元素是不是和当前节点值相同,如果相同就出栈,不同的话就将当前节点入栈 题目给出最多是...
栈
数组
C++
双指针
模拟
链表
2022-08-03
1
304
题解 | #日期差值#
让小的日期自增直到和大的相同记录中间自增的天数即可。 #include<iostream> using namespace std; bool ismax(int year1,int month1,int day1,int year2,int month2,int day2) { ...
C++
数组
暴力
2022-06-20
1
414
题解 | #计算日期到天数转换#
思路:使用前缀和思想,要求的是从这一年的第一天到今天的差距天数,先定义一个数组,每个月多少天,然后求出这个数组的前缀和数组,这个数组的下标为n的数据就是n个月的天数和,只需要求出month-1的天数和再加上day,最后判断如果month>2,并且是闰年的话,sum再加一天。 #include...
C++
数组
前缀和
2022-06-20
0
371
题解 | #查找组成一个偶数最接近的两个素数#
思路:先求出所有的素数存入数组,然后在数组中用双指针进行查找,找到那个差值最小的一组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
首页
上一页
1
2
下一页
末页