青叶摩卡
青叶摩卡
全部文章
分类
归档
标签
去牛客网
登录
/
注册
青叶摩卡的博客
TA的专栏
0篇文章
0人订阅
面试高频榜单思路
0篇文章
0人学习
面试高频榜单思路梳理
0篇文章
0人学习
面试高频榜单思路梳理
0篇文章
0人学习
全部文章
(共136篇)
题解 | #旋转数组的最小数字#
二分查找,数组要么没有旋转,要么旋转成为两段局部有序的子数组。如果mid的值大于right端点的值,说明只可能是两段有序的子数组,且最小值必定出现在mid右端;如果小于,说明两种情况都可能存在,但此时最小值必定出现在mid左端;如果等于,无法判断最小值出现的区间,但是可以肯定right不会是唯一最小...
2022-12-03
0
227
题解 | #用两个栈实现队列#
很经典的题了。第一个栈用来push,第二个栈用来pop。如果第二个栈为空,就把第一个栈的元素全部pop出来再依次push进第二个栈,因为栈是先进后出后进先出的,先进第一个栈的元素最后被pop出来push入第二个栈,因此最先从第二个栈被pop出来,简单来说就是负负得正。class Solution {...
2022-12-02
0
247
题解 | #重建二叉树#
与树有关的问题第一时间尝试递归,分解子问题。前序遍历的顺序是中左右,所以如果利用遍历结果建树,那么前序遍历数组的第一个数一定是根节点存储的树。在中序遍历数组中找到这个根节点存储的数,因为中序遍历的顺序是左中右,所以中序遍历数组中该数左边的部分一定是根节点左子树存储的数,该数右边的部分一定是根节点右子...
2022-12-02
0
286
题解 | #从尾到头打印链表#
两次遍历,一次统计长度,一次逆序输出。int* printListFromTailToHead(struct ListNode* listNode, int* returnSize ) { int *res; struct ListNode* tmp = listNode; ...
2022-12-02
0
222
题解 | #替换空格#
先统计空格个数。每个空格替换成%20,长度增加2,所以如果空格数为cnt,修改后的总长度为length + 2 * cnt,最大下标为length + 2 * cnt - 1。维护两个指针,一个指针j指向修改后字符串,i指向修改前字符串。因为是原地修改,且j比i移动得快,所以需要从后往前遍历,防止没...
2022-12-02
0
246
题解 | #二维数组中的查找#
从左下角搜索到右上角(反过来也可以,原理一样)。因为数组从上到下、从左到右是有序的,所以如果当前查找的数大于target,那么其上方的数也一定会大于target;如果当前查找的数小于target,那么其左边的数也一定会小于target。bool Find(int target, int** arra...
2022-12-02
0
257
首页
上一页
5
6
7
8
9
10
11
12
13
14
下一页
末页