模拟与逻辑题

模拟和逻辑题

1.
二分插入排序

使用二分查找优化插入排序的实现

2.
双向冒泡排序

实现双向冒泡排序算法(鸡尾酒排序)

3.
单向冒泡排序

手写实现冒泡排序算法

4.
桶排序

实现桶排序算法及其原理

5.
计数排序

实现计数排序算法及其原理

6.
手写堆排序

使用 JavaScript 实现堆排序算法

7.
最大的钻石问题

如何在电梯上行过程中拿到最大的钻石

8.
插入排序

手写实现插入排序算法

9.
实现 LRU 缓存

使用 Map 实现一个 LRU(最近最少使用)缓存淘汰算法

10.
合并K个升序链表

将多个已排序的链表合并为一个升序链表

11.
判断回文字符串

实现函数判断字符串是否为回文

12.
扑克牌顺子判断

判断5张扑克牌是否为顺子,大小王可作为任意牌

13.
基数排序

实现基数排序算法,按位数逐位排序

14.
去除字符串中出现次数最少的字符

删除字符串中出现频率最低的字符,保持原有顺序

15.
希尔排序

实现希尔排序算法及其原理

16.
洗牌算法的实现

使用 JavaScript 实现数组随机打乱的洗牌算法

17.
手写选择排序算法

用 JavaScript 实现选择排序算法

18.
排序算法实现

手写冒泡、快速、归并、插入、选择、堆排序

19.
排序算法复杂度分析

常见排序算法的时间复杂度、空间复杂度对比

20.
尾调用优化和尾递归

理解尾调用优化原理,用尾递归避免栈溢出

21.
平方根函数实现

手写 sqrt 函数,使用二分查找和牛顿迭代法

22.
尾递归的理解与应用

通过示例理解尾递归的优化原理,以及在数组求和、扁平化等场景的应用

23.
什么是时间复杂度

理解时间复杂度的概念、常见类型和计算方法

24.
版本号比较

实现比较两个版本号大小的函数

25.
时间空间复杂度基础

理解算法的时间复杂度与空间复杂度