面试中数据结构与算法——知识点最全总结(学完可应对一线大厂)

教程下载地址:https://pan.quark.cn/s/4f7802434df7

在这里插入图片描述

各大厂历年高频面试题系列,以下为部分内容不包括全部:

双指针类面试题

括号类面试题

回文类面试题

递推类面试题

树型dp类面试题

区间dp类面试题

背包dp类面试题

排序相关面试题

常见贪心面试题

常见图算法面试题

子数组类面试题

子序列类面试题

二分类面试题

bfs与dfs类面试题

博弈类面试题

递归、回溯类面试题

以下为部分题目列表:

在一个有序数组中,找某个数是否存在

在一个有序数组中,找大于等于某个数最左侧的位置

在一个有序数组中,找小于等于某个数最右侧的位置

局部最小值问题

如何不用额外变量交换两个数

一个数组中出现了奇数次的数

提取整形数最右侧的1

一个数组中出现奇数次的两个数

一个数组中有一种数出现K次,其他数都出现了M次

单链表和双链表如何反转

把链表中的给定值都删除

双向链表实现栈和队列

数组实现栈和队列

实现最小栈

如何用栈结构实现队列结构

如何用队列结构实现栈结构

用递归方法求数组中的最大值

求数组小和

荷兰国旗问题

快速排序

堆排序

相对几乎有序数组排序

固定数组实现前缀树

哈希表实现前缀树

计数排序

基数排序代码

在整型数组中把奇数放在左边偶数放在右边且保持稳定性

判断链表是否为回文结构

深度复制带有rand指针的链表

两个可能有环的单链表相交的第一个节点

不给单链表的头节点删除指定节点

递归方式实现二叉树的三序遍历

非递归方式实现二叉树的三序遍历

实现二叉树的按层遍历

二叉树的序列化和反序列化

如何设计一个打印整棵树的打印函数

求二叉树最宽的层有多少个节点

二叉树中指定节点的后继节点

从上到下打印对折纸条所有折痕的方向

判断二叉树是不是平衡二叉树

判断二叉树是不是满二叉树

判断二叉树是不是搜索二叉树

二叉树中最大的二叉搜索子树的大小

二叉树中最大的二叉搜索子树的头节点

判断二叉树中是不是完全二叉树

二叉树上两个节点的最低公共祖先

求二叉树两个节点的最大距离

派对的最大快乐值

字符串组成的数组拼接后字典序最小的结果

点亮str中所有需要点亮的位置至少需要几盏灯

金条分割的最小代价

会议室能容纳的最多宣讲场次

做项目获得的最大钱数

并查集代码

真实的用户数量

图的拓扑排序算法

最小生成树算法之Kruskal

最小生成树算法之Prim

Dijkstra算法

打印n层汉诺塔从最左边移动到最右边的全部过程

递归逆序一个栈

打印一个字符串的全部子序列

打印一个字符串的全部子序列,要求不要出现重复字面值的子序列

打印一个字符串的全部排列

打印一个字符串的全部排列,要求不要出现重复的排列

数字转化为字符串的结果数

背包能装下最多的价值

A,B玩家从左右两边拿纸牌,返回最后获胜者的分数

小人过有鳄鱼的河

海盗分金币问题

欧拉信封问题

N皇后问题

Fibonacci数列

机器人必须走 K 步,最终能来到P位置的方法有多少种

背包问题的动态规划解法

数字转化为字符串的结果数

A,B玩家从左右两边拿纸牌,返回最后获胜者的分数

面值数组组成面值的方法数-张数不限

多少张贴纸可以贴出给定字符串

两个字符串的最长公共子序列问题

让所有咖啡杯变干净的最早完成时间

滑动窗口内的最大值

整形数组中子数组最大值减最小值达标的子数组个数

整形数组中子数组累加和乘最小值的最大值

单调栈代码

直方图面积问题

一个矩阵求内部长方形有多少个1

斐波那契数列矩阵乘法方式的实现

一个人迈上N级台阶的方法数

母牛生小牛, N年后牛的数量

由0和1两种字符构成的达标字符串

在无序数组中求第K小的数

服务器今天登录所有用户抽出100个幸运观众

概率生成数字问题

机器所有吐出的球都等概率放进袋子里

bfprt代码

在无序数组中生成前十小的数组

字符串str中是否有某个子串是等于字符串match|KMP算法

判断两个字符串是否互为旋转词

两棵二叉树是否有一致结构的子树

字符串变为回文需要添加的最少字符

Manacher算法代码

Morris遍历代码

Morris实现中序遍历

Morris实现前序遍历

Morris实现后序遍历

二叉树的最小深度

线段树代码

线段树实例一

方块掉落之后的最大高度

指定范围上涂色的房子有多少种

最大线段重叠问题-线段树实现|最大线段重合问题

矩形重叠问题

给定一个正整数N,返回至少使用多少袋子装苹果

牛羊吃N份青草谁会赢

给定一个参数N,返回是不是可以表示成若干连续正数和的数

两人操作开关比赛

zigzag打印矩阵

转圈打印矩阵

原地旋转正方形矩阵

正整数组成的无序数组中子数组的累加和等于K的最大长度

整数组成的无序数组中子数组的累加和等于K的最大长度

整数组成的无序数组中达标的含有1跟2的最大子数组长度

整数组成的无序数组中子数组的累加和小于等于K的最大长度

求最大子数组异或和

二维01矩阵中一共有多少个岛

推荐饭店问题

40亿个无符号整数的文件中找到出现次数最多的数

40亿个无符号整数的文件中找到所有未出现过的数

100亿个URL的大文件中找出其中所有重复的URL

某搜索公司一天的用户搜索词汇是海量的, 求出每天热门Top100词汇

40亿个无符号整数找出所有出现了两次的数

40亿个无符号整数的中位数

有一个10G大小的文件中的数字排序

区间和的个数

滑动窗口中位数

一根长度为K的绳子,最多能盖住几个点

括号有效配对问题

最少要填几个字符才能让无效括号字符串变成有效

最长的括号有效子串的长度

最大嵌套的括号层数

最少需要涂染几个正方形

边框全是1的最大正方形的边长

根据要求构造出一个长度为M的数组

路径定义从头结点出发叶节点为止, 返回最大路径和

路径定义从任何节点结点出发往下走到任意节点, 返回最大路径和

路径定义从任何节点结点出发到任何节点, 返回最大路径和

路径可以从任何节点出发,到叶节点为止,返回最大路径和

在行有序、列也有序的二维数组中,找num

使每个打包机器上的物品数量相等需要搬动的最小轮数

找出最大的左部分最大值减去右部分最大值的绝对值

数组直方图装水

二维数组直方图装水

累加和为aim的所有二元组

累加和为aim的所有三元组

第k小的数值对

每个人按照标准选工作后所能获得的最高报酬

背包中有多少种零食放法

二维数组最小路径和

两个字符的最长公共子序列

两个字符串的最长公共子串

词频最大的前K个字符串

指定结构中加入的所有字符串中,词频最大的K个

打印目录结构

搜索二叉树转换为有序的双向链表

已知中序遍历数组和先序遍历数组,返回后序遍历数组

最长递增子序列问题的O(NxlogN)的解法

给你一批信封,返回最大的嵌套层数

给定一个数组arr,返回子数组的最大累加和

给定一个整型矩阵,返回子矩阵的最大累计和

问字符串s2最少删除多少字符可以成为s1的子串

将str1编辑成str2的最小代价

求完全二叉树节点的个数

LRU内存替换算法的实现

两个字符串的最短的变换路径

主播们能获得的最大收益

求最大子数组异或和

哪一种划分下一个数组异或和为零的部分最多

字符串express能有多少种组合方式,可以达到desired的结果

以最少的跳跃次数跳到最后一个数

一个字符串至少切几刀,能让切出来的部分全是回文串

求两个有序数组累加和最大的前K个

数组能不能分成4个相等的部分

判断字符串aim是否是str1和str2交错组成

无序数组需要排序的最短子数组长度

返回正数数组 arr 的最小不可组成和

arr中一定有1, 返回正数数组 arr 的最小不可组成和

想累加得 到 1~aim范围上所有的数,返回数组arr最少还缺几个数

在一个字符串中找到没有重复字符子串中最长的长度

返回数组中,有多少个独立的域

全是小写字母的字符串str,删除多余字符后达到字典序最小

一条直线最多能穿过多少个点

打怪兽需要花的最小钱数

最少添加多少字符使字符串变为回文串

一种消息接收并打印的结构设计

普通硬币跟纪念币拼出指定面值

1~N中所有数字包含1的个数

最大可整合子数组的长度

只做一次交易买卖股票的最大钱数

多次交易买卖股票的最大钱数

最多K次交易买卖股票的最大钱数

数组中离给定K值最近的子数组累加和

二维数组中离给定K值最近的子矩阵累加和

二维数组最大递增链的长度

二维数组中可以走出的单词

给定两个字符串S和T,返回S子序列等于T的不同子序列个数

数组中添加加减乘除运算符得到指定值的所有方法

摘樱桃问题

骑士能见到公主的最少初始血量

矩阵往返一次的最大路径和

无序数组如果排序之后相邻数之间的最大差值

使用单词表拼接长字符串的方法数

求二叉树路径累加和为K是最长路径的节点数

找到数组中只出现1次的数

数组中出现次数超过一半及超过N除K的数

喝完咖啡并洗完咖啡杯的时间点

喝咖啡的最好时间

两个有序数组中最大的k个数

两个等长有序数组求上中位数

两个有序数组中最大的k个数-最优解

约瑟夫环问题

约瑟夫环拓展问题

大楼最高点变化的轮廓线

Nim博弈问题

乘客坐船使用的最少船数

最长回文子序列长度

蛇走的轨迹问题

计算str表达式结果

子序列回文

给定一个正整数n, 求裂开的方法数

求1~N所有数字排列中,等于指定K个逆序对数的排列数

求二叉树中复合BST的最大拓扑结构的大小

将长度为2N数组的前半跟后半数组每个数交替

能够互相看见环形山的对数

调整BST中错误的两个节点

非负数组子序列中累加和%m的最大值

项目经理和程序员

字符串匹配问题

自由之路

打气球的最大分数

汉诺塔游戏的最佳状态

合并相邻K个数字的最小代价

求字符串str1的子串中含有str2所有字符的最小子串长度

旋变字符串

LFU内存替换算法的实现

数组最大的三子数组的最大和

分糖果问题

二叉树放置照相机

距离首都距离

邮局选址问题

画匠问题

丢棋子问题

牛牛分田地

等累加和集合对中最大的累加和

求数组调整之后的逆序对数量

数组中全是1的最大正方形

最大的全是1的子矩阵中1的数量

无序数组中最长的连续序列的长度

二叉树节点间最近公共祖先的批量查询问题

TSP问题

贴瓷砖问题

贴瓷砖问题M*N问题

移除盒子

奇怪的打印机

最小区间

还原数组丢失的数字

后缀数组

在两个给定整形数组中从左往右挑选K个数的所有结果中的最大数字

两数之和问题

无重复字符的最长子串

寻找两个正序数组的中位数

最长回文子串

整数反转

字符串转换整数 (atoi)

正则表达式匹配

盛最多水的容器

整数转罗马数字

罗马数字转整数

最长公共前缀

三数之和

电话号码的字母组合

删除链表的倒数第N个节点

有效的括号

合并两个有序链表

括号生成

合并K个升序链表

删除排序数组中的重复项

实现 strStr()

两数相除

搜索旋转排序数组

在排序数组中查找元素的第一个和最后一个位置

有效的数独

解数独

外观数列

缺失的第一个正数

接雨水

通配符匹配

跳跃游戏

跳跃游戏 II

全排列

最长同值路径

旋转图像

字母异位词分组

Pow(x, n)

N皇后

最大子序和

不同路径

合并区间

加一问题

x 的平方根

爬楼梯

矩阵置零

最小覆盖子串

子集

单词搜索

柱状图中最大的矩形

合并两个有序数组

解码方法

二叉树的中序遍历

验证二叉搜索树

对称二叉树

二叉树的层序遍历

二叉树的锯齿形层次遍历

二叉树的最大深度

从前序与中序遍历序列构造二叉树

将有序数组转换为二叉搜索树

填充每个节点的下一个右侧节点指针

杨辉三角

买卖股票的最佳时机

买卖股票的最佳时机 II

买卖股票的最佳时机 IV

最佳买卖股票时机含冷冻期

二叉树中的最大路径和

验证回文串

单词接龙

最长连续序列

被围绕的区域

分割回文串

加油站

只出现一次的数字

复制带随机指针的链表

单词拆分

单词拆分 II

环形链表

LRU缓存机制

排序链表

直线上最多的点数

逆波兰表达式求值

乘积最大子数组

最小栈

相交链表

寻找峰值

缺失的区间

分数到小数

多数元素

颠倒二进制位

Excel表列序号

阶乘后的零

最大数

旋转数组

位1的个数

打家劫舍

岛屿数量

快乐数

计数质数

反转链表

课程表

实现 Trie (前缀树)

课程表 II

单词搜索 II

数组中的第K个最大元素

存在重复元素

天际线问题

基本计算器 II

基本计算器 III

二叉搜索树中第K小的元素

回文链表

二叉树的最近公共祖先

删除链表中的节点

除自身以外数组的乘积

滑动窗口最大值

搜索二维矩阵 II

有效的字母异位词

展开二维向量

会议室 II

缺失数字

最长上升子序列

最长递增子序列的个数

搜寻名人

寻找重复数

火星词典

完全平方数

移动零

二叉搜索树中的顺序后继

生命游戏

数据流的中位数

二叉树的序列化与反序列化

最长上升子序列

二维区域和检索 - 可变

3的幂

反转字符串

四数相加 II

计算右侧小于当前元素的个数

零钱兑换

摆动排序 II

奇偶链表

矩阵中的最长递增路径

递增的三元子序列

至多包含 K 个不同字符的最长子串

扁平化嵌套列表迭代器

前 K 个高频元素

判定井字棋胜负

两个数组的交集 II

两整数之和

有序矩阵中第K小的元素

常数时间插入、删除和获取随机元素

打乱数组

字符串中的第一个唯一字符

至少有K个重复字符的最长子串

Fizz Buzz

最长有效括号

组合总和

最小路径和

二叉树展开为链表

最大正方形

翻转二叉树

打家劫舍 III

字符串解码

根据身高重建队列

分割等和子集

路径总和 III

和为K的子数组

找到字符串中所有字母异位词

找到所有数组中消失的数字

目标和问题

二叉树的直径

最短无序连续子数组

合并二叉树

每日温度

任务调度器

最佳的碰头地点

带分数和

算法课练习小题

只出现两次的数

最少按几次开关才能点亮所有的灯

买饮料

司机调度

新手游游的数组难题

扑克牌问题

棋盘染色问题

一个数组中有一种数出现K次,其他数都出现了M次

给购买次数最多的前K名用户颁奖

将单向链表按某值划分成左边小、中间相等、右边大的形式

链表改序问题

二叉树某一节点X祖先节点的交集

将N叉树编码为二叉树

拓扑排序

象棋问题-马只走K步跳到指定位置的方法数 暴力O(8^k)

货币数组组成面值的方法数-同值认为不同

面值数组组成面值的方法数-张数不限

货币数组组成面值的方法数-同值无差别(张数限定)

Bob生还的概率

英雄砍死怪兽的概率

正数数组分割为累加和接近的两个集合

正数数组分割为个数跟累加和接近的两个集合

货币数组组成面值的最少货币数

全是1的最大子矩形面积 or 最大矩形

全是1的子矩阵数量 or 统计全 1 子矩形

子数组最小值的累加和

无序数组中求Top K

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT狂飙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值