| 1 |
为什么要学习数据结构和算法? |
| 2 |
什么是数据结构? |
| 3 |
数据结构有什么用? |
| 4 |
数据结构按逻辑结构分为几大类? |
| 5 |
数据结构按物理结构分为几大类? |
| 6 |
常用的数据结构有哪些? |
| 7 |
JDK 中都用到了哪些数据结构? |
| 8 |
常用的线性数据结构有哪些? |
| 9 |
常用的非线性数据结构有哪些? |
| 10 |
什么是数组? |
| 11 |
数组的优缺点? |
| 12 |
数组为什么都是从 0 开始编号,而不是从 1 呢? |
| 13 |
什么是栈? |
| 14 |
什么是链表? |
| 15 |
链表分为哪几类? |
| 16 |
链表的优缺点? |
| 17 |
数组和链表的区别? |
| 18 |
数组和链表怎么选? |
| 19 |
什么是队列? |
| 20 |
栈和队列的区别? |
| 21 |
什么是线性表? |
| 22 |
什么是顺序表? |
| 23 |
线性表分为哪两大类? |
| 24 |
线性表有哪几种存储结构? |
| 25 |
常用的线性表数据结构有哪些? |
| 26 |
线性表和链表有什么关系? |
| 27 |
数组是线性表吗? |
| 28 |
什么是树? |
| 29 |
常用的树数据结构有哪些? |
| 30 |
什么是二叉树? |
| 31 |
常用的二叉树数据结构有哪些? |
| 32 |
什么是满二叉树? |
| 33 |
什么是完全二叉树? |
| 34 |
满二叉树和完全二叉树的区别? |
| 35 |
什么是二叉查找树? |
| 36 |
二叉查找树和二叉树的区别? |
| 37 |
什么是平衡二叉树? |
| 38 |
常用的平衡二叉树有哪些? |
| 39 |
什么是 AVL 树? |
| 40 |
什么是红黑树? |
| 41 |
红黑树和 AVL 树的区别? |
| 42 |
什么是堆? |
| 43 |
栈和堆的区别? |
| 44 |
常用的堆数据结构有哪些? |
| 45 |
什么是散列表? |
| 46 |
什么是图? |
| 47 |
什么是算法? |
| 48 |
数据结构和算法有什么关系? |
| 49 |
算法的基本特征有哪些? |
| 50 |
从哪些方面来评定一个算法? |
| 51 |
你怎么理解时间复杂度? |
| 52 |
算法复杂度用什么公式表示? |
| 53 |
为什么需要做算法复杂度分析? |
| 54 |
如何分析一段代码的时间复杂度? |
| 55 |
常见的时间复杂度有哪些?它们的算法效率如何? |
| 56 |
你怎么理解时间复杂度 O(1)?(请举例说明) |
| 57 |
你怎么理解时间复杂度 O(n)?(请举例说明) |
| 58 |
你怎么理解时间复杂度 O(log n)?(请举例说明) |
| 59 |
你怎么理解时间复杂度 O(n log n)?(请举例说明) |
| 60 |
你怎么理解时间复杂度 O(n^2)、O(n^3)、O(n^k)?(请举例说明) |
| 61 |
你怎么理解空间复杂度? |
| 62 |
常见的空间复杂度有哪些? 它们的占用空间如何? |
| 63 |
你怎么理解空间复杂度 O(1)?(请举例说明) |
| 64 |
你怎么理解空间复杂度 O(n)?(请举例说明) |
| 65 |
你怎么理解空间复杂度 O(n^2)?(请举例说明) |
| 66 |
说说常用的数据结构操作方法,它们的时间复杂度和空间复杂度? |
| 67 |
常见的算法基本思想有哪几种? |
| 68 |
什么是贪心算法? |
| 69 |
贪心算法的适用场景? |
| 70 |
贪心算法的结果一定是最优解吗?为什么? |
| 71 |
什么是回溯算法? |
| 72 |
回溯算法解题的一般步骤是怎样的? |
| 73 |
什么是分治算法? |
| 74 |
分治算法的适用场景? |
| 75 |
分治算法解题的一般步骤是怎样的? |
| 76 |
什么是动态规划? |
| 77 |
动态规划解题的一般步骤是怎样的? |
| 78 |
贪心算法与动态规划有什么区别? |
| 79 |
LeetCode——动态规划常见的面试题(共 30 道) |
| 80 |
LeetCode——贪心算法常见的面试题(共 20 道) |
| 81 |
LeetCode——分治算法常见的面试题(共 16 道) |
| 82 |
LeetCode——回溯算法常见的面试题(共 22 道) |
| 83 |
常用的排序算法主要有哪些? |
| 84 |
说说常用的排序算法,它们的时间复杂度和空间复杂度? |
| 85 |
常用的查找算法有哪些? |
| 86 |
常用的图搜索算法有哪些? |
| 87 |
常用的字符串匹配算法有哪些? |
| 88 |
什么是对称加密算法? |
| 89 |
对称加密算法的优缺点? |
| 90 |
对称加密算法的应用场景有哪些? |
| 91 |
常用的对称加密算法有哪些? |
| 92 |
什么是非对称加密算法? |
| 93 |
非对称加密算法的优缺点? |
| 94 |
非对称加密算法的应用场景有哪些? |
| 95 |
常用的非对称加密算法有哪些? |
| 96 |
什么是散列算法? |
| 97 |
散列算法的应用场景有哪些? |
| 98 |
常用的散列算法有哪些? |
| 99 |
MD5 加密算法能被破解吗? |
| 100 |
为什么都说 MD5 加密不安全了? |
| 101 |
如何加强散列算法的安全性? |
| 102 |
Base64 是什么? |
| 103 |
Base64 的优缺点? |
| 104 |
Base64 是加密算法吗? |
| 105 |
Base64 的应用场景有哪些? |
| 106 |
Base64 可以在 Url 中传输吗? |
| 107 |
编程输出九九乘法表 |
| 108 |
编程输出 100 以内所有的素数 |
| 109 |
编程输出 1000 以内所有的水仙花数 |
| 110 |
编程统计出不同类型的字符个数 |
| 111 |
编程计算出1-100之间的和 |
| 112 |
编程输出只出现过一次的数 |
| 113 |
编程实现数组排序(冒泡排序) |
| 114 |
编程实现数组排序(快速排序) |
| 115 |
编程实现数组排序(选择排序) |
| 116 |
编程实现数组排序(插入排序) |
| 117 |
编程实现数组排序(希尔排序) |
| 118 |
编程实现数组排序(二分排序) |
| 119 |
编程实现数组排序(归并排序) |
| 120 |
编程实现数组排序(堆排序) |