牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共200篇)
题解 | #删除链表的倒数第n个节点#
struct ListNode* removeNthFromEnd(struct ListNode* head, int n ) { if(head ==&nbs...
C
链表
双指针
2022-04-28
3
559
题解 | #求二叉树的层序遍历#
层次遍历的基本思想是:要借助一个队列。 先将根结点入队列,然后出队,访问之, 若它有左子树,则左子树根结点入队列; 若它有右子树,则右子树根结点入队列; 然后头指针后移一位; 队头元素出队列,访问之,左子树根结点入队列,右子树根结点入队列,头指针后移 ……直至队空...
C
二叉树
队列
2022-04-28
4
407
题解 | #缺失的第一个正整数#
用一个标记数组来记录1到n-1之间的数是否出现过,遍历完做完标记之后再遍历一遍数组,找出第一个标记值未改变的即是没有出现过的, 一般情况就是原数组中出现了小于n的数和大于n的数,那么就把小于n的数在标记数组中改变标记值,大于等于n的数不管 特殊情况:对于数组中的数刚好是1到n-1每个数都...
C
数组
2022-04-22
5
416
题解 | #翻转单词#
所有单词都要翻转,那咱就一个个来翻嘛,每次找到一个单词的左右边界,然后用左右互换来翻转单词即可。 char* reverseWord(char* str ) { int left = 0,&...
C
字符串
双指针
2022-04-22
0
442
题解 | #二进制取反#
要使数值变大,就是把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
首页
上一页
3
4
5
6
7
8
9
10
11
12
下一页
末页