首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
leyon1210
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
左神直通BAT算法笔记(基础篇)-下
以先根遍历二叉树为例,可以发现递归方式首先尝试打印当前结点的值,随后尝试打印左子树,打印完左子树后尝试打印右子树,递归过程的base case是当某个结点为空时停止子过程的展开。这种递归尝试是由二叉树本身的结构所决定的,因为二叉树上的任意结点都可看做一棵二叉树的根结点(即使是叶…
左神直通BAT算法(进阶篇)-下
给你一个数组,找出数组中每个数左边离它最近的比它大的数和右边离它最近的比它大的数。 矩阵中的数只会是0或1,求矩阵中一片1形成的最大长方形区域的面积。 此题可借鉴在直方图中找最大矩形的方法。首先一个数组可以对应一个直方图,如下所示: 如上图,0号杆子向左右移动一格都会使杆子出界…
BAT 经典算法笔试题 —— 逆转单向链表
不善言谈的优秀程序员在面试中往往是要吃巨亏的,你没有办法通过说话来轻易证明自己的实力。不论是大厂还是小厂,大部分面试官都不具备优秀的面试能力,它们也只能通过三言两语观察一下面试者的表面工夫。有很多这样吃了亏的程序员,不喜欢准备面试,不喜欢吹嘘虚假的不存在的经验和能力,甚至连网上…
BAT 经典算法笔试题 —— 磁盘多路归并排序
在 LevelDB 数据库中高层数据下沉到低层时需要经历一次 Major Compaction,将高层文件的有序键值对和低层文件的多个有序键值对进行归并排序。磁盘多路归并排序算法的输入是来自多个磁盘文件的有序键值对,在内存中将这些文件的键值对进行排序,然后输出到一到多个新的磁盘…
数据结构基础知识: 表 栈 队列 树 散列 堆
1. 表,栈和队列 表,栈和队列是计算机科学中最简单和最基本的三种底层数据结构。事实上,每一个有意义的程序都将明晰地至少使用一种这样的数据结构,而栈则在程序中总是要间接地用到,不管你在程序中是否做了声明。 在计算机软件编程中,我们会接触到诸如整型,浮点型,字符型,布尔型等基本数…
「中高级前端」窥探数据结构的世界- ES6版
1. 什么是数据结构? 数据结构是在计算机中组织和存储数据的一种特殊方式,使得数据可以高效地被访问和修改。更确切地说,数据结构是数据值的集合,表示数据之间的关系,也包括了作用在数据上的函数或操作。 数据是计算机科学当中最关键的实体,而数据结构则可以将数据以某种组织形式存储,因此…
剑指offer解析-下(Java实现)
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 典型的二叉树分解问题,我们可以定义一个黑盒transform,它的目的是将二叉树转换成双向链表,那么对于一个当前结点root,首先将其前驱结点(BST中前驱结点指…
剑指offer解析-上(Java实现)
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 暴力方法是遍历一遍二维数组,找到target就返回true,时间复杂度为O(M * …
左神直通BAT算法笔记(基础篇)-上
时间复杂度是衡量算法好坏的重要指标之一。时间复杂度反映的是不确定性样本量的增长对于算法操作所需时间的影响程度,与算法操作是否涉及到样本量以及涉及了几次直接相关,如遍历数组时时间复杂度为数组长度n(对应时间复杂度为O(n)),而对数据的元操作(如加减乘除与或非等)、逻辑操作(如i…
左神直通BAT算法(进阶篇)-上
Manacher算法是由题目“求字符串中最长回文子串的长度”而来。比如abcdcb的最长回文子串为bcdcb,其长度为5。 我们可以遍历字符串中的每个字符,当遍历到某个字符时就比较一下其左边相邻的字符和其右边相邻的字符是否相同,如果相同则继续比较其右边的右边和其左边的左边是否相…