牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共166篇)
题解 | #矩形重叠#
重叠的情况比较多,这里用反向的排除法,画图更好理解: 用一个矩形的下边缘和另一个矩形的上边缘比较,下边缘比上边缘还高或重叠,则比无正相交。 同理,用一个矩形的右边缘和另一个矩形的左边缘比较,左边缘在右边缘的右边或重叠,则必无正相交部分。 其他情况就可能相交 #include&l...
C
2022-04-13
1
363
题解 | #快乐数#
1.首先定义一个转换函数专门用来将各个位上的数平方之后再相加。 2.1肯定是快乐数,对于不是1的数持续用转换函数的条件是其值大于9,也就是说跳出循环的条件是m <= 9; #include<stdbool.h> int change(int x){ ...
C
2022-04-13
0
445
题解 | #连续子链表最大和#
和之前求子数组的最大和一样的思路。 把当前链表和nowsum和所求链表和的最大值maxsum均设为第一个元素值, 然后从第二个元素值往后遍历,如果当前和小于0,那么就舍弃前面的求和,把当前值作为第一个元素开始求和, 如果当前和不小于0,那么就把当前值加入成为新的数组和, 再与...
C
链表
2022-04-12
1
457
题解 | #反转数字#
正负号没有影响,反正都是while(x!=0). 依次摘下末位然后乘10,再加末位数,如此循环至x=0; 值得注意的是定义返回值时不能用int,因为可能会越界,比如一个前小后大的数,反转之后就超出了最大值限制,就不是原值了 int reverse(int x ...
C
数学
2022-04-12
0
340
题解 | #跳跃游戏(一)#
在下标为i处能跳到的最远地方是i+num[i],整个跳跃过程能跳到的最远地方是reach. 最大下标是numslen -1,如果reach >= numslen-1,说明可以跳到,否则就跳不到。 每到一个位置就要更新reach,并检查是否可以跳到最后一格 #include<s...
C
数组
2022-04-12
1
268
题解 | #替换空格#
第一趟遍历先数出总共有多少个空格,然后就可以知道新字符串是多长,因为每个空格会换成3个字符。 然后再次遍历,遇到空格就改成‘%’,‘2’,‘0’三个字符。 char* replaceSpace(char* s ) { &nbs...
C
字符串
2022-04-12
11
735
题解 | #Excel 表列序号#
类似于将由0-9的数字组成的字符串转成十进制数。不过这里是大写字母,进制是26. 大写字母算数值的话就是和字符A的差值再+1,从左往右每个大写字母先转成数值,再乘权值,最后累加 int getNumber(char* S ) { &nbs...
C
字符串
2022-04-11
1
408
题解 | #构建乘积数组#
题目意思就是说对于B[i],只要A数组所有数的乘积除去A[i]就可以了,既然不能用除法,那么在乘积时跳过这个数就好了。 int* multiply(int* A, int ALen, int* returnSize )&nbs...
C
数组
2022-04-11
0
344
题解 | #从尾到头打印链表#
第一想到的不就是把链表的值一个一个放到数组里去,然后再把数组的值反转,最后打印就好了嘛。 可是逆置也很麻烦啊,然后看到别人的写法,先遍历一遍把结点个数num计算出来,然后指针再回到链头, 接着把元素一个一个倒着放进数组不就可以了吗,从arr[num-1] 一直到arr[0]; 果然 快很...
C
数组
链表
2022-04-11
14
511
题解 | #跳台阶扩展问题#
如果一次可以跳任意阶,那么要想跳到第n阶,可以从前面任意一阶跳过去,即f(n)=f(n-1)+f(n-2)+……+f(2)+f(1)。 同理,f(n-1)=f(n-2)+f(n-3)+……+f(2)+f(1), 那么f(n) = 2 * f(n-1). 依此类推,f(n-1)...
C
递归
2022-04-11
0
315
首页
上一页
2
3
4
5
6
7
8
9
10
11
下一页
末页