首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法
订阅
MWY
更多收藏集
微信扫码分享
微信
新浪微博
QQ
21篇文章 · 0订阅
数据结构和算法面试题系列—二叉堆
本文要描述的堆是二叉堆。二叉堆是一种数组对象,可以被视为一棵完全二叉树,树中每个结点和数组中存放该结点值的那个元素对应。树的每一层都是填满的,最后一层除外。二叉堆可以用于实现堆排序,优先级队列等。本文代码地址在 这里。 使用数组来实现二叉堆,二叉堆两个属性,其中 LENGTH(…
[算法总结] 13 道题搞定 BAT 面试——字符串
1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m)。因为“暴力搜索”的方法会反复回溯主串,导致…
数据结构和算法面试题系列—随机算法总结
随机算法涉及大量概率论知识,有时候难得去仔细看推导过程,当然能够完全了解推导的过程自然是有好处的,如果不了解推导过程,至少记住结论也是必要的。本文总结最常见的一些随机算法的题目,是几年前找工作的时候写的。需要说明的是,这里用到的随机函数 randInt(a, b) 假定它能随机…
数据结构和算法面试题系列—二叉树基础
在说二叉树前,先来看看什么是树。树中基本单位是结点,结点之间的链接,称为分支。一棵树最上面的结点称之为根节点,而下面的结点为子结点。一个结点可以有0个或多个子结点,没有子结点的结点我们称之为叶结点。 二叉树是指子结点数目不超过2个的树,它是一种很经典的数据结构。而二叉搜索树(B…
数据结构碎碎念(一)
在大一学习C语言的时候,举过一个用栈实现的括号匹配算法,当时觉得很难,不过现在回顾起来,这个算法也算是比较简单的一个关于栈的应用了。而现在所常见的算法问题也都是什么中缀表达式转后缀表达式,双栈找最小值之类的。难度比之括号匹配稍有提升,不过倒也算是必须要掌握的算法。 上述所说的表…
数据结构和算法面试题系列—字符串
字符串作为数据结构中的基础内容,也是面试中经常会考察的基本功之一,比如实现 strcpy,strcmp等基本函数等,回文字符串,字符串搜索,正则表达式等。本文相关代码见 这里。 首先来看一些字符串的基本函数的实现,以下代码取自MIT6.828课程。 题: 给定一个字符串,找出该…
[算法总结] 6 道题搞定 BAT 面试——堆栈和队列
0. 基础概念 1. 栈的 java 实现 2. 队列的 java 实现 3. 用两个栈实现队列 4. 用队列实现栈 5. 包含min函数的栈 6. 栈的压入、弹出序列
Java集合(七) Queue详解
在开始很重要的集合Map的学习之前,我们先学习一下集合Queue,主要介绍一下集合Queue的几个重要的实现类。虽然它的内容不多,但它牵涉到了极其重要的数据结构:队列。所以这次主要针对队列这种数据结构的使用来介绍Queue中的实现类。 队列与栈是相对的一种数据结构。只允许在一端…
数据结构和算法面试题系列—背包问题总结
背包问题包括0-1背包问题、完全背包问题、部分背包问题等多种变种。其中,最简单的是部分背包问题,它可以采用贪心法来解决,而其他几种背包问题往往需要动态规划来求解。本文主要来源于《背包问题九讲》,我选择了比较简单的0-1背包问题和完全背包问题进行汇总。同时给出实现代码,如有错误,…
数据结构和算法面试题系列—排序算法之快速排序
快速排序也是基于分治模式,类似归并排序那样,不同的是快速排序划分最后不需要merge。对一个数组 A[p..r] 进行快速排序分为三个步骤: 划分: 数组 A[p...r] 被划分为两个子数组 A[p...q-1] 和 A[q+1...r],使得 A[p...q-1] 中每个元…