牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共200篇)
题解 | #打印从1到最大的n位数#
int* printNumbers(int n, int* returnSize ) { int i = 0, j = 0; &nb...
C
数组
2022-08-30
0
359
题解 | #构建乘积数组#
方法一,双重循环,每一趟外循环就求出一个B[i]。在每趟外循环中,初始B[i]为1,然后避开A[i],只计算其他数的乘积。 int* multiply(int* A, int ALen, int* returnSize )&n...
C
数组
2022-08-29
0
329
题解 | #翻转单词序列#
1.先整体反转。方法是用首尾指针交换两个元素并让指针向中间移动直到相遇。 2.再以单词为界局部反转。方法同样是首尾指针法,关键是找到左右边界,左边界是第一个不是空格的位置,用指针i做好标记,然后用另一个指针j继续遍历寻找第一个空格出现的位置,j-1即为右边界,如此一个一个单词反转。 voi...
C
字符串
双指针
2022-08-29
0
334
题解 | #顺时针打印矩阵#
1.输入的是m*n的矩阵,采用大数组包小数组的形式,每行为一个数组,m个数组构成一个大数组。 2.输出的是一个一维数组,按照上-右-下-左的形式一次一条边地输出。 3.因为可能在上下左右任何一条边结束,所以在输出每条边时都要判断是否结束。 4.每遍历完一条边,该边的边界值就会改变,...
C
数组
2022-08-29
0
388
题解 | #Nim游戏#
n=1,2,3,时直接全拿走,必然获胜。n=4时,无论拿1,2,3个,留给对方的必然可以使对方获胜,己方输。 剩余i个时,应考虑的是拿走j(1<=j<=3)个时留下的个数能否使对方必输,那么己方就会赢。 bool NimGame(int n )&n...
C
脑筋急转弯
动态规划
数学
2022-08-26
0
277
题解 | #二进制取反#
根据首元素是0还是1确定不同的边界。 首元素是0时,左边界为0,右边界为第一个出现的‘1’的下标再减1. 首元素为1时,继续遍历,左边界为第一个出现的‘0’的下标,当然也可能遍历完也没有出现,这就是全1的情况,已是最大,那么直接返回原数即可。 有0出现确定了左边界,那么继续遍历,第...
字符串
C
2022-08-25
0
325
题解 | #修剪叶子#
其实就是删除所有叶子结点及其父节点。 1.如果为空,无可再删,返回空。 2.如果有一个孩子结点是叶结点,无论左右,父子均删,返回空。 3.如果两个孩子均不是叶子结点,左子树最终结果为递归左孩子的结果,右子树亦如此。 struct TreeNode* prun...
二叉树
C
递归
2022-08-25
0
309
题解 | #数组中只出现一次的数(其它数出现k次)#
1、对这n个数,按照从高到低考察各个位上是否为1,方法是通过将第i位的数向右移动32-i个位置到达末位,然后和1相与。最后求和sum[i]。 2、对于只出现一次的数,其二进制位值为0时,无异样,sum[i]必定是k的整数倍,取余结果为0,左移多少位都是0,累加不变; 3、对于只出现一...
数组
C
计数
2022-08-25
0
355
题解 | #01背包#
1.容量从V开始,然后逐次减1,依次找出能装下的最大物品重量。 #define max(a, b) ((a) > (b) ? (a) : (b)) int knapsack(int ...
数组
C
2022-08-25
0
278
题解 | #进制转换#
新建一个数组,根据正负性确定数组首元素是否为’-‘,然后依次取得转换进制后的数的末位,依次存入数组中,最后将数组反转(负号不反)即可。 #include<stdbool.h> #include<string.h> char* solve(int M,&...
数组
C
2022-08-24
0
281
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页