![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
一百道数据结构算法面试题
这里面含有详细的数据结构相关的面试题的讲解。
极客李华
CSDN,阿里社区内容合伙人、系统分析师、全网20万粉丝的技术博主,交流合作私信+。欢迎技术交流。
展开
-
实现一个阻塞队列
阻塞队列是一种特殊类型的队列,具有阻塞特性。当队列为空时,消费者线程试图从队列中获取元素时会被阻塞,直到队列中有新的元素加入;当队列已满时,生产者线程试图向队列中添加元素时会被阻塞,直到队列中有空位。原创 2024-01-30 21:25:05 · 971 阅读 · 0 评论 -
二叉树层序遍历
二叉树层序遍历是一种广度优先的遍历方式,它从二叉树的根节点开始,逐层遍历二叉树的各个节点,直到遍历完所有节点为止。在层序遍历中,我们按照从上到下、从左到右的顺序依次访问每个节点。原创 2024-01-30 21:05:47 · 777 阅读 · 0 评论 -
请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。
简介:请实现一个队列,支持以下操作:添加元素、删除第一个元素、获取第一个元素。原创 2023-06-13 12:28:30 · 202 阅读 · 0 评论 -
给定一个二叉树,请你找出其中最长严格递增路径的长度。(提示:使用动态规划)
简介:给定一个二叉树,请你找出其中最长严格递增路径的长度。(提示:使用动态规划)原创 2023-06-13 12:26:49 · 95 阅读 · 0 评论 -
实现二分查找树,支持插入、删除、查询操作。
简介:实现二分查找树,支持插入、删除、查询操作。原创 2023-06-13 12:26:54 · 89 阅读 · 0 评论 -
给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)
简介:给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)原创 2023-06-13 12:28:46 · 48 阅读 · 0 评论 -
实现一个单词搜索游戏,给定一个二维网格和一个单词列表,找到单词列表中出现在网格中的所有单词(提示:Trie树 + DFS)。
简介:实现一个单词搜索游戏,给定一个二维网格和一个单词列表,找到单词列表中出现在网格中的所有单词(提示:Trie树 + DFS)。原创 2023-06-13 12:28:54 · 82 阅读 · 0 评论 -
实现一个二分搜索算法,搜索指定元素在已排序数组中的位置。(递归或者非递归实现)
简介:实现一个二分搜索算法,搜索指定元素在已排序数组中的位置。(递归或者非递归实现)原创 2023-06-13 12:28:59 · 185 阅读 · 0 评论 -
实现一个函数 splice(int[] a, int b[], int n, int m) 将数组 b 插入到数组 a 的第 n 个位置上去,并将其后面的元素后移 m 个位置,同时更新数组 a 的长度
简介:实现一个函数 splice(int[] a, int b[], int n, int m) 将数组 b 插入到数组 a 的第 n 个位置上去,并将其后面的元素后移 m 个位置,同时更新数组 a 的长度。原创 2023-06-13 12:29:10 · 69 阅读 · 0 评论 -
数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。
简介:数据结构与算法面试题:实现二叉树的遍历(前序、中序、后序、层序)。原创 2023-06-13 12:29:15 · 69 阅读 · 0 评论 -
数据结构与算法面试题:给定 n 个非负整数 a1,a2,a3,...,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)
简介:给定 n 个非负整数 a1,a2,a3,…,an,每个数代表坐标中的一个点(i, ai),请找出两个点之间的最大距离。(提示:动态规划)原创 2023-06-13 12:29:19 · 154 阅读 · 0 评论 -
数据结构与算法面试题:实现一个函数,判断一个链表是否为回文链表。(提示:反转后半部分链表比对前半部分)
简介:数据结构与算法面试题:实现一个函数,判断一个链表是否为回文链表。(提示:反转后半部分链表比对前半部分)原创 2023-06-13 12:29:25 · 71 阅读 · 0 评论 -
数据结构与算法面试题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)
简介:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。(提示:使用动态规划或者中心扩散)原创 2023-06-13 12:27:42 · 252 阅读 · 0 评论 -
数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)
简介:数据结构与算法面试题:给定非负整数 m 和 n,计算不大于 m 的数字中,素数的个数。(提示:算法原理为埃氏筛、线性筛)原创 2023-06-13 12:30:17 · 78 阅读 · 0 评论 -
数据结构与算法面试题:实现一个哈希表,并考虑哈希冲突的解决方案。
简介:实现一个哈希表,并考虑哈希冲突的解决方案。原创 2023-06-13 12:27:48 · 243 阅读 · 6 评论 -
数据结构和算法面试题:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
是num[i]为结尾的连续子数组的和。在每次遍历中,用当前数值num[i]与num[i]+cur之间的较大值更新cur并求出当前子数组msum[i]的和,将其与ans作比较,并记录在ans中;最终返回ans作为答案。由于只有一层循环,该算法的时间复杂度为 O(n)。简介:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。该算法遍历整个数组,维护了两个变量。表示目前找到的最优连续子序列的和,原创 2023-06-13 12:32:07 · 613 阅读 · 1 评论 -
数据结构和算法面试题:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)
函数则使用递归实现,代码更加简洁易懂。两个函数的思路都是:对于一个节点,交换其左右子树后,递归地对其左右子树进行同样的操作。函数使用栈进行非递归实现,从而避免了函数调用的栈深,降低了空间复杂度;简介:实现一个函数,将一棵二叉树转换为它的镜像。(递归或者非递归实现)这两份代码均以定义二叉树结构的方式构建二叉树。原创 2023-06-13 12:30:25 · 63 阅读 · 0 评论 -
数据结构与算法面试:基于比较的排序算法时间复杂度最坏情况下是 O(nlogn),请问有没有更快的算法?(提示:计数排序、基数排序)
基于比较的排序算法时间复杂度最坏情况下是 O(nlogn),请问有没有更快的算法?(提示:计数排序、基数排序)原创 2023-06-13 12:30:32 · 72 阅读 · 0 评论 -
数据结构与算法面试题:实现一个函数 fill(int[] a, int n, int v),使其将大小为 n 的数组 a 填满为 v。
简介:实现一个函数 fill(int[] a, int n, int v),使其将大小为 n 的数组 a 填满为 v。原创 2023-06-13 12:30:36 · 44 阅读 · 0 评论 -
数据结构与算法面试题:实现一个 LRU 缓存,支持如下操作:获取值、更新值、删除键值对和插入键值对
简介:实现一个 LRU 缓存,支持如下操作:获取值、更新值、删除键值对和插入键值对。原创 2023-06-13 12:32:26 · 102 阅读 · 0 评论 -
数据结构算法面试题:请实现一个栈,在栈中支持取出最小值的操作。
题目:请实现一个栈,在栈中支持取出最小值的操作。原创 2023-06-13 12:32:55 · 81 阅读 · 0 评论