牛客82035003号
牛客82035003号
全部文章
题解
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
/ 题解
(共159篇)
题解 | #字母异位词的长度#
用两个长度为26的数组分别记录两个数组中各个字母出现的次数,最后进行比较,出现不一样的即可判结。 int isCongruent(char* s, char* c){ int n1 =&n...
C
字符串
2022-04-14
1
437
题解 | #Excel列名称#
题目数据范围是1到16384, 而最大的二位是ZZ即702,最大的三位是ZZZ即18278,那么n对应的字母最多只有3位。 用一个三位的字符串来接收即可。那么怎么把数值转成字符类型,先得定义字符类型,然后用该数字减1再加上’A'即为该字符的ASCII码,用字符类型表示出来就是大写字母了。 ...
C
字符串
2022-04-13
1
395
题解 | #验证回文字符串(二)#
1.先验证是否本身就是回文字符串,无非两种情况一种奇数位,如12321;一种偶数位,如123321. 2,一个从前往后走,一个从后往前走,相遇或者刚好错过时结束,可判结。对于回文类型,要么两个下标相同 i==j,即奇数位情况;要么刚好错过, i==j+1。 3.当中途遇到前后两个字符不相...
C
字符串
双指针
2022-04-13
2
565
题解 | #矩形重叠#
重叠的情况比较多,这里用反向的排除法,画图更好理解: 用一个矩形的下边缘和另一个矩形的上边缘比较,下边缘比上边缘还高或重叠,则比无正相交。 同理,用一个矩形的右边缘和另一个矩形的左边缘比较,左边缘在右边缘的右边或重叠,则必无正相交部分。 其他情况就可能相交 #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
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页