牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共166篇)
题解 | #二进制取反#
要使数值变大,就是把0换成1,但问题是要求在连续区间取反,不然全部把0换成1就必然是最大了,不过那没有意义。 连续区间取反的话,必然是将前面的0变成1更容易使数值变大,因为前面数的权值更大。 1.如果开头就是0,不管几个,那么只要找到从头开始的第一个1然后将其前面部分的0全部取反即可。比...
C
字符串
2022-04-21
0
687
题解 | #排序#
用冒泡排序,最多排n-1趟,每趟最多比较次数依次为为n-1,n-2,n-3,……3,2,1次 从后往前比较,遇到后数小于前数的,就把二者交换位置,否则指针前移继续比骄。 每趟初始都要设置一个标记,记录是否出现过交换。出现交换就改变标记值 如果某一趟中,没有出现交换,标记值未改变,可...
C
数组
2022-04-21
3
402
题解 | #杨辉三角(一)#
0 1 2 3 4 5 6 0 1 ...
C
数组
2022-04-15
0
363
题解 | #重复的子字符串#
如果重复,那么至少重复一次吧,字符串个数从1到len/2,均检查一遍,看是否是被重复的字符串 第一趟检查是否是第一个字符重复而形成的字符串 第二趟检查是否是前两个字符重复而形成的字符串 第三趟检查是否是前三个字符重复而形成的字符串 …… #include...
C
字符串
2022-04-15
0
456
题解 | #字符串的相邻字符去重#
用两个指针来比较元素,分别从下标为0和1开始。 1.若是两个元素一样,则左指针左移一位,右指针右移一位,继续比较,相当于用消消乐消去了这两个一样的元素。 2.若两个元素不一样,保留前者,检验后者,那么就要把两个指针都要往右移一位,继续比较下一组相邻的元素, 3.le...
C
字符串
2022-04-15
0
516
题解 | #数组里面没有出现过的数字#
元素个数和数据范围一致,这不又是用复合数组吗,一个数组的值作为另一个数组的下标,用作计数或标记。 int* findDisappearedNumbers(int* nums, int numsLen, int* returnSize&n...
C
数组
2022-04-14
0
422
题解 | #两个数组的交集#
数组元素个数是1到1000,数组元素范围也是1到1000,冥冥中就是让用复合数组,第一个数组的值作为第二个数组的下标。 先遍历一边第一个数组,用一个标记数组记录各个值是否出现,初始值均为0,出现则变成1. 再遍历第二个数组,发现标记数组值为1的,表示之前出现过,那么就记录下元素值,并把标...
C
数组
2022-04-14
0
434
题解 | #字母异位词的长度#
用两个长度为26的数组分别记录两个数组中各个字母出现的次数,最后进行比较,出现不一样的即可判结。 int isCongruent(char* s, char* c){ int n1 =&n...
C
字符串
2022-04-14
1
450
题解 | #Excel列名称#
题目数据范围是1到16384, 而最大的二位是ZZ即702,最大的三位是ZZZ即18278,那么n对应的字母最多只有3位。 用一个三位的字符串来接收即可。那么怎么把数值转成字符类型,先得定义字符类型,然后用该数字减1再加上’A'即为该字符的ASCII码,用字符类型表示出来就是大写字母了。 ...
C
字符串
2022-04-13
1
408
题解 | #验证回文字符串(二)#
1.先验证是否本身就是回文字符串,无非两种情况一种奇数位,如12321;一种偶数位,如123321. 2,一个从前往后走,一个从后往前走,相遇或者刚好错过时结束,可判结。对于回文类型,要么两个下标相同 i==j,即奇数位情况;要么刚好错过, i==j+1。 3.当中途遇到前后两个字符不相...
C
字符串
双指针
2022-04-13
2
565
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页