
牛客
牛客里面的基础算法题
Nuy.oah
这个作者很懒,什么都没留下…
展开
-
二叉树的层序遍历
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)原创 2022-12-07 17:49:15 · 284 阅读 · 0 评论 -
二叉数遍历--前序-中序-后序
二叉数遍历--前序-中序-后序原创 2022-12-07 16:46:32 · 213 阅读 · 0 评论 -
排序算法-选择排序-插入排序
排序算法-选择排序-插入排序原创 2022-12-05 18:32:37 · 240 阅读 · 0 评论 -
排序-交换排序
以交换位置的方式排序冒泡排序把第一个元素与第二个元素比较,如果第一个比第二个大,则交换他们的位置。接着继续比较第二个与第三个元素,如果第二个比第三个大,则交换他们的位置…我们对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样一趟比较交换下来之后,排在最右的元素就会是最大的数。除去最右的元素,我们对剩余的元素做同样的工作,如此重复下去,直到排序完成。快速排序从数列中取出一个值,将比这个值大的放在它的右边,将比这个值小的放在它的左边,再最左右两个区域重复这个过程,直到各个区域只有一个原创 2022-12-05 16:53:05 · 145 阅读 · 0 评论 -
NC1 大数加法
描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:s.length,t.length≤100000,字符串仅由’0’~‘9’构成示例1思路大数相加,如果数据超过范围使用int类型相加会超界采用竖式加法来相加,在java中使用栈来计算,首先使用补0的方法来使数据的长度一致,然后从数据的最后一位开始相加,如果数据长度大于10则进一位。定义两个指针 i 和 j 分别指向 s 和 t 的末尾,即最低位,同时定义一个变量 carry维护当前是否有进位,然后从末尾到开头逐原创 2022-12-05 14:20:36 · 152 阅读 · 2 评论 -
链表内指定区间反转
将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。给出的链表为 1→2→3→4→5→NULL, m=2,n=4m=2,n=4,建议使用虚拟头节点的技巧,可以避免对头节点复杂的分类考虑,简化操作。要反转局部链表,可以将该局部部分当作完整链表进行反转。再将已经反转好的局部链表与其他节点建立连接,重构链表。返回 1→4→3→2→5→NULL.原创 2022-11-28 17:28:06 · 757 阅读 · 0 评论 -
Leetcode组合总和+剪枝
Leetcode组合总和原创 2022-07-13 17:20:38 · 120 阅读 · 0 评论 -
Leetcode全排序-剪枝算法
LeetCode全排序原创 2022-07-12 20:00:42 · 460 阅读 · 0 评论 -
BM6 判断链表中是否有环
输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。数据范围:链表长度 0 \le n \le 100000≤n≤10000,链表中任意节点的值满足 |val|原创 2022-09-28 20:34:40 · 73 阅读 · 0 评论