牛客82035003号
牛客82035003号
全部文章
分类
题解(161)
归档
标签
去牛客网
登录
/
注册
牛客82035003号的博客
全部文章
(共166篇)
题解 | #兑换零钱(一)#
就拿给定的例子来说,有5,2,3,三种面值的钱,现在拿出一张20元的,怎么兑换才能使钱的张数最少。 首先,我们知道可兑换的钱的最大张数是20,也就是面值是1的时候,其他可兑换的情况张数肯定小于20,那么可兑换张数<=20才是可考虑的范围,且要求最小值。 设置的计数数组的...
C
数组
2022-05-03
9
559
题解 | #长度为 K 的重复字符子串#
长度为n的字符串有n-k个长度为k的子串,那么就遍历这n-k个子串看其中有没有重复的字母,只要有就计数,开始查看下一子串。 怎么判断是否有重复字母呢?因为字符串中全是小写字母,那么就用一个长度为26的数组来记录26个小写字母出现的次数。 每遍历一个子串,就把其中的字母出现次数...
C
字符串
计数
数组
2022-05-02
0
426
题解 | #二叉搜索树的最近公共祖先#
空树没有最近公共祖先 如果p和q两个数一个大于根结点的值,一个小于根结点的值,那么就分属左右两边,根结点即为最近公共祖先。 如果p和q两个数都小于根结点的值,那么就都在根结点的左边,那么把根结点的左孩子结点当作根结点用递归继续找。 如果p和q两个数都大于根结点的值...
C
二叉树
二叉搜索树
递归
2022-05-02
1
404
题解 | #从上往下打印二叉树#
和NC15的区别在于这里并不需要把每层的数值单独放在一个数组里,而是把二叉树的所有元素放在一个大数组里,那么问题就简单些了。 int* PrintFromTopToBottom(struct TreeNode* root, int* return...
C
二叉树
2022-05-01
4
423
题解 | #压缩字符串(一)#
学习别人的优秀写法,能想到用log10(x)的真是人才! 用双指针,刚开始均指向第一个字母,然后开始比较,(每轮比较第一次比较的其实是同一个字母,第二次才是正式比较才决定要不要压缩) 如果后面指针所指元素和前面不同,说明前面字母只出现一次,那么在字符串中保留该字母,用新指针进行赋值。 ...
C
字符串
双指针
2022-05-01
0
561
题解 | #螺旋矩阵#
用循环,一轮控制一个变量,复制上面一行时,变动列数。复制右边一列时,变动行数。 复制下面一行时,变动列数。复制左边一列时,变动行数。 每复制完一行或一列,边界移动一行或一列。 复制一圈是4个for循环,但不确定是在上下左右那个for循环中终结, 所以每个for之后配一个跳出循...
C
数组
2022-04-30
0
377
题解 | #删除链表的倒数第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
409
题解 | #翻转单词#
所有单词都要翻转,那咱就一个个来翻嘛,每次找到一个单词的左右边界,然后用左右互换来翻转单词即可。 char* reverseWord(char* str ) { int left = 0,&...
C
字符串
双指针
2022-04-22
0
442
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页