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

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

时间:2024-04-09 15:58:19浏览次数:25  
标签:知识点 最大 链表 二叉树 数组 字符串 数据结构 学完 节点

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

双指针类面试题

括号类面试题

回文类面试题

递推类面试题

树型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

标签:知识点,最大,链表,二叉树,数组,字符串,数据结构,学完,节点
From: https://blog.csdn.net/liu1813335/article/details/137527056

相关文章

  • 数据结构----栈和队列详细操作完整代码(C语言)
    栈和队列是两种常用的,重要的数据结构栈和队列是限定插入和删除只能在表的“端点”进行的线性表栈和队列是线性表的子集(是插入和删除位置受限的线性表)栈定义:只能在表的一端(栈顶)进行插入和删除运算的线性表逻辑结构:与线性表相同,仍为一对一关系存储结构:用顺序栈或链栈存......
  • 数据结构--二叉树
    1.树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。如果将他的图画出来的话很像一棵树。1.1名词概念根结点:没有父结点(前驱节点)的结点;如上方A就是根结点父结点或双亲结点:如果这个结点下方还有结点(孩子节点)那么称这个结点为下方结点......
  • 冒泡排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:相邻元素两两比较并交换位置,使整个序列按照特定的顺序排列特性复杂度分析时间复杂度:最好情况:O(n)最坏情况:O(n^2)平均情况:O(n^2)空间复杂度:O(1),原地排序使用场景因为时间复杂度为O(n^2)适......
  • 优先队列的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程特性效率比普通队列高每个出队元素拥有最高优先级可以用数组、链表等数据结构实现,但是堆结构是最常用的实现方式设计实现方式:基于堆结构实现,堆结构底层基于数组实现属性:heap:存放队列元素方法:enq......
  • 插入排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:将数列分为已排序和未排序,将未排序中的元素插入到已排序中的合适位置特性复杂度分析时间复杂度:最好情况:O(n),有序序列最坏情况:O(n^2),倒序序列平均情况:O(n^2),随机数列空间复杂度:O(n),原地排序使......
  • 选择排序的基本实现【数据结构与算法—TypeScript 实现】
    笔记整理自coderwhy『TypeScript高阶数据结构与算法』课程概念本质:两两元素相比较,先扫描一遍未排序数列,把未排序的数列中的最小(大)元素,放到数列的已排序的末尾特性选择排序是冒泡排序的优化版本,主要优化了交换的过程在所有完全依靠交换去移动元素的排序方法中,选择排......
  • 计算机网络知识点总结(二)物理层
    本章最重要的内容是:(1)物理层的任务。(2)几种常用的信道复用技术。(3)几种常用的宽带接入技术,重点是FTTx。2.1物理层的基本概念物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链......
  • java知识点
    (1)springboot注解,当接收页面单个:参数字符串数组。必须加org.springframework.web.bind.annotation.RequestBody注解, 如果是整形数组,则换成Integer[]ids即可。@PostMapping("/demo")@ResponseBodypublicResulttest(@RequestBodyLong[]ids){}(2)获取最近12个月份publicLi......
  • 2024.4.8 数据结构课件补题
    [AGC055B]ABCSupremacy令ABC分别为1,2,3,然后令\(s_i=(s_i-i)\textmod3\)且结果大于0。然后可以发现三种组合均为连贯的三个相同数。且可以自由移动。可以选择每遇到三个相同数就删掉,或者不断加入栈,如果栈顶三个数相同全部弹出。再比较剩下的数即可。#include<bits......
  • Day5.一刷数据结构算法(C语言版) 242有效的字母异位词; 349两个数组的交集; 202快乐数; 1
        现在我们开始学习哈希表.        经过本次学习我认识到c++的便利,但是我使用的是c,那些功能c又用不了,导致代码长度一下子拉长了...        一刷的时候我还是先用c吧,等二刷的时候试试c++.        进入正题:        什么时候......