
CodeTop企业题库——数据研发岗
CodeTop用于汇总互联网大厂面试的高频考题🔥帮助面试者更有针对性地准备面试。
学海无涯苦作舟呀
站在风口上的猪都能飞起来!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
下一个排列(思路题)
给你一个数字,找到和它之差最小的较大数(字典序)。原创 2022-06-16 21:54:34 · 326 阅读 · 2 评论 -
字符串相乘(相加、相乘)
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。原创 2022-06-14 23:32:33 · 406 阅读 · 2 评论 -
颠倒字符串中的单词(split、双端队列)
给你一个字符串 s ,颠倒字符串中 单词 的顺序。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。...原创 2022-06-11 15:00:22 · 270 阅读 · 1 评论 -
括号生成(回溯)
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。原创 2022-06-11 09:37:09 · 334 阅读 · 1 评论 -
全排列(回溯算法)
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。原创 2022-06-10 16:41:49 · 438 阅读 · 1 评论 -
螺旋矩阵(技巧)
给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。原创 2022-06-10 10:12:55 · 507 阅读 · 2 评论 -
只出现一次的数字(异或运算,哈希表)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。原创 2022-06-09 14:46:14 · 424 阅读 · 1 评论 -
堆排序(重要)
堆升序排序的思想就是先将待排序的序列建成大根堆,使得每个父节点的元素大于等于它的子节点。此时整个序列最大值即为堆顶元素,我们将其与末尾元素交换,使末尾元素为最大值,然后再调整堆顶元素使得剩下的 n-1n−1 个元素仍为大根堆,再重复执行以上操作我们即能得到一个有序的序列。...原创 2022-06-06 15:02:30 · 166 阅读 · 1 评论 -
排序之——直接插入排序、归并排序(优化)、快速排序(优化)
排序之——直接插入排序、归并排序(优化)、快速排序(优化)原创 2022-05-31 10:42:36 · 375 阅读 · 2 评论 -
两数相加(链表)(类似模拟大数相加)
给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。原创 2022-05-27 14:18:38 · 197 阅读 · 1 评论 -
排序链表(递归)
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。输入:head = [4,2,1,3]输出:[1,2,3,4]原创 2022-05-26 15:51:36 · 2974 阅读 · 1 评论 -
重排链表(线性表,找链表中点、反转、合并链表)
题目:给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为:L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。原创 2022-05-24 17:35:14 · 277 阅读 · 1 评论 -
字符串相加(模拟大数相加)
给定两个字符串形式的非负整数num1 和num2,计算它们的和并同样以字符串形式返回。你不能使用任何內建的用于处理大整数的库(比如 BigInteger),也不能直接将输入的字符串转换为整数形式。原创 2022-05-24 10:30:08 · 256 阅读 · 1 评论 -
买卖股票的最佳时机
给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。原创 2022-05-20 17:16:46 · 248 阅读 · 2 评论 -
最长重复子数组(dp)
给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。原创 2022-05-20 14:35:20 · 294 阅读 · 1 评论 -
x的平方根(指数函数、二分)
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。原创 2022-05-20 10:35:38 · 1446 阅读 · 6 评论 -
最长递增子序列(dp)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。...原创 2022-05-14 12:35:51 · 244 阅读 · 0 评论 -
普通二分查找、寻找左侧边界的二分搜索、寻找右侧边界的二分搜索
二分查找及其变形原创 2022-05-06 18:27:18 · 387 阅读 · 1 评论 -
链表中倒数第k个节点(顺序查找、快慢指针)
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。原创 2022-04-21 20:00:27 · 2640 阅读 · 0 评论 -
回文链表(链表复制到数组、快慢指针+反转链表)
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。原创 2022-04-20 14:53:40 · 1169 阅读 · 0 评论 -
用栈实现队列(双栈,输入栈、输出栈)
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):原创 2022-04-20 11:41:38 · 539 阅读 · 0 评论 -
反转链表II
给你单链表的头指针 head 和两个整数left 和 right ,其中left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。原创 2022-04-19 23:48:05 · 1106 阅读 · 0 评论 -
回文字符串 + 双指针(剑指ll019)
回文字符串原创 2021-12-20 11:44:01 · 395 阅读 · 0 评论 -
剑指offer ll 069 山峰数组的顶部 (二分查找)
山峰数组的顶部思路一:枚举(时间复杂度为O(n))(不推荐)class Solution { public int peakIndexInMountainArray(int[] arr) { int ans = -1; for(int i = 1;i<arr.length-1;i++){ if(arr[i] > arr[i+1]) { ans = i; break;原创 2021-10-27 09:37:18 · 85 阅读 · 0 评论 -
位运算+与或非(剑指ll 005)
剑指offer(专项突破版) 005原创 2021-12-17 14:12:19 · 343 阅读 · 0 评论 -
分隔链表(建两个空链表)
给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。原创 2022-04-19 15:32:05 · 294 阅读 · 0 评论 -
合并两个有序链表(迭代)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2022-04-19 12:09:37 · 932 阅读 · 0 评论 -
相交链表(Set、双指针)
你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。原创 2022-04-19 11:36:01 · 161 阅读 · 0 评论 -
合并两个有序数组(双指针、逆向双指针)
用双指针和逆向双指针解决合并两个有序数组问题原创 2022-04-15 19:26:26 · 645 阅读 · 0 评论 -
数组排序(快排)
数组排序,采用快排方法原创 2022-04-12 11:20:57 · 232 阅读 · 0 评论 -
最长回文子串
最长回文子串(最长公共子串)原创 2022-04-11 18:08:05 · 77 阅读 · 0 评论 -
二叉树中序遍历(递归、迭代)
二叉树中序遍历(递归、迭代)原创 2022-03-29 22:08:40 · 373 阅读 · 0 评论 -
二叉树后序遍历(递归、迭代)
二叉树后序遍历(递归、迭代)原创 2022-03-29 22:08:42 · 669 阅读 · 0 评论 -
二叉树前序遍历(递归、迭代)
二叉树前序遍历(递归、迭代)原创 2022-03-29 22:08:37 · 639 阅读 · 0 评论 -
岛屿的最大面积(dfs)
给你一个大小为 m x n 的二进制矩阵 grid 。岛屿是由一些相邻的1(代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。原创 2022-03-29 14:34:18 · 3061 阅读 · 0 评论 -
岛屿的周长(dfs)
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地,0 表示海洋。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(一个或多个表示陆地的格子相连组成岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。计算这个岛屿的周长。原创 2022-03-29 10:33:29 · 538 阅读 · 0 评论 -
岛屿数量(dfs)
我们所熟悉的 DFS(深度优先搜索)问题通常是在树或者图结构上进行的。而我们今天要讨论的 DFS 问题,是在一种「网格」结构中进行的。岛屿问题是这类网格 DFS 问题的典型代表。网格结构遍历起来要比二叉树复杂一些,如果没有掌握一定的方法,DFS 代码容易写得冗长繁杂。原创 2022-03-28 16:19:41 · 334 阅读 · 0 评论 -
环形链表(哈希表、快慢指针)
哈希表和快慢指针解决环形链表原创 2022-03-15 22:08:14 · 745 阅读 · 0 评论 -
合并两个有序链表
巧妙递归解决合并两个有序链表原创 2022-03-15 22:03:37 · 603 阅读 · 1 评论 -
无重复字符的最长子串(哈希)
哈希表解决无重复字符的最长字串原创 2022-03-15 21:56:15 · 143 阅读 · 1 评论