牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共37篇)
题解 | #顺时针打印矩阵#
1.输入的是m*n的矩阵,采用大数组包小数组的形式,每行为一个数组,m个数组构成一个大数组。 2.输出的是一个一维数组,按照上-右-下-左的形式一次一条边地输出。 3.因为可能在上下左右任何一条边结束,所以在输出每条边时都要判断是否结束。 4.每遍历完一条边,该边的边界值就会改变,...
C
数组
2022-08-29
0
388
题解 | #数组中只出现一次的数(其它数出现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
268
题解 | #进制转换#
新建一个数组,根据正负性确定数组首元素是否为’-‘,然后依次取得转换进制后的数的末位,依次存入数组中,最后将数组反转(负号不反)即可。 #include<stdbool.h> #include<string.h> char* solve(int M,&...
数组
C
2022-08-24
0
282
题解 | #数字在升序数组中出现的次数#
因为是有序的,所以用二分查找更快。找到比k小的第一个数作为左边界,找到比k大的第一个数作为右边界,右-左即k的个数。 按普通找某个数的位置来找,只是把int 改为double, 找k-0.5和k+0.5 int position(int* data, int&...
数组
二分查找
C
2022-08-23
2
387
题解 | #两数之和#
先找第一个加数,因为第二个加数可能会是负数,且题中说了最小为-10,所以判断如果某个数减10之后还大于sum,那么必不可能是第一个加数,看下一个。 找到第一个加数之后,便从其后面开始找第二个,一轮遍历没找到,就把第一个加数换成下一个再重新找。 int* twoSum(int*&n...
数组
C
2022-08-22
0
346
题解 | #合并两个有序的数组#
1.既然空间足够,那么直接从后往前比较,两个数组各出1个,较大的放到A[长度为m+n]的后面,直到某个数组比较完。 2.若A完而B有余,则将剩余B继续放到A空出的前面位置,正好。若B完而A有余,哈哈,不是刚好把空填满了嘛,收工。 void merge(int* A,&n...
数组
C
2022-08-21
0
269
题解 | #[NOIP2008]笨小猴#
1.专门用一个长度为26的数组来记录各个字母出现的次数 2.遍历计数数组找到max和min 3.检查差值是否为质数 #include <stdio.h> #include <math.h> int main(){ &n...
数组
C
2022-08-18
0
268
题解 | #回型矩阵#
按上-右-下-左一圈再一圈的顺序给二维数组赋值,每次处理完一条边后要改变边界值的大小。最后打印 #include <stdio.h> int main(){ int n = 0,&nbs...
数组
C
2022-08-18
11
351
题解 | #买卖股票的最好时机(一)#
int maxProfit(int* prices, int pricesLen ) { //if(prices == NULL || si...
数组
C
2022-07-03
0
223
首页
上一页
1
2
3
4
下一页
末页