算法刷题
文章平均质量分 79
菜菜的小孙同学
心如所愿,尽力而为
展开
-
KMP算法(28题实现 strStr() 函数)
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。class Solution: def strStr(self, haystack: str, needle: str) -> int: next = self.getNext(needle) i1 = 0 i2 = 0 while i1<le原创 2022-03-07 16:25:32 · 231 阅读 · 0 评论 -
牛客网视频总结5(二叉树)
牛客网视频总结5目录牛客网视频总结5二叉树先序、中序、后序遍历递归方法非递归方法二叉树的后继节点/先驱节点后继节点前驱节点二叉树的序列化和反序列化判断二叉树是否为平衡二叉树(树型DP)判断二叉树是否为搜索二叉树判断二叉树是否为完全二叉树完全二叉树,求节点个数二叉树先序、中序、后序遍历先序遍历:先打印当前节点,然后打印整棵左子树,然后打印右子树中序遍历:先打印左节点,然后打印当前节点,然后右节点后序遍历:先打印左节点,然后打印右节点,最后打印当前节点递归方法中序遍历为例,先序遍历就把append原创 2022-02-26 00:06:11 · 451 阅读 · 0 评论 -
牛客网视频总结4(矩阵、链表)
牛客网视频总结4(矩阵、链表)目录牛客网视频总结4(矩阵、链表)矩阵转圈打印矩阵方形矩阵顺时针旋转90°(不允许辅助数组)之字形打印矩阵在行列都有序的矩阵中找数链表打印链表公共部分链表反向判断链表是否为回文结构链表的荷兰国旗问题复制含有随机指针节点的链表两链表相交判断链表是否有环单链表相交节点有环链表相交节点矩阵转圈打印矩阵题目:按照1.2.3.4.8.12.16.15.14.13.9.5.6.7.11.10打印矩阵先算外层,左上角给(a,b),右下角给(c,d),打印一圈然后(a++,b+原创 2022-02-23 22:56:11 · 451 阅读 · 0 评论 -
牛客网视频总结3(排序稳定性、计数排序、队列、栈)
牛客网视频总结3目录)牛客网视频总结3排序总结桶排序(计数排序,计数排序)计数排序相邻两数最大差值队列(先进先出)、栈(后进先出)用数组结构实现栈:用数组结构实现队列:getMin函数用队列结构实现栈用栈实现队列排序总结排序方法时间复杂度稳定性额外空间复杂度简单介绍冒泡排序O(N2)O(N^2)O(N2)稳定-两两比较交换选择排序O(N2)O(N^2)O(N2)不稳定-选最小的放前面(交换index)插入排序O(N2)O(N^2)O(N2)稳定原创 2022-02-19 20:14:35 · 273 阅读 · 0 评论 -
牛客网视频总结2(荷兰国旗问题、经典/随机快排、堆排序、堆的简单介绍)
牛客网视频总结2本期目录牛客网视频总结2快速排序普通快排快速排序普通快排取固定位置,一般是取第一个或最后一个称为基准,然后就是比基准小的放在左边,比基准大的放到右边。就是和基准进行交换,这样交换完左边都是比基准小的,右边都是比较基准大的,这样就将一个数组分成了两个子数组,然后再按照同样的方法把子数组再分成更小的子数组,直到不能分解为止。问题:划出来的小于区域和等于区域不是等规模的改进后的快排...原创 2022-02-15 16:45:21 · 290 阅读 · 0 评论 -
牛客网视频总结1(时间复杂度、冒泡/选择/插入/归并排序、对数器、递归)
牛客网视频总结1开始刷题看视频!小孙95%的概率准备找工作啦!准备上!视频无法上传啦,就写一点我自己总结的东西吧,一是提醒自己好翻阅,二是希望能够帮助到其他找工作的小伙伴吖~文章目录牛客网视频总结1时间复杂度排序问题冒泡排序选择排序插入排序归并排序递归对数器例题:小和计算详细笔记时间复杂度时间复杂度为一个算法流程中,常数操作数量的指标。常用O来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(f(N))。举例子:有原创 2022-02-12 22:04:01 · 447 阅读 · 0 评论