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 |
编程实现数组排序(堆排序) |