2026-10-22 07:26:26
迭代、解构、Set等特性可简化代码。例如使用解构赋值快速提取对象属性,Set可快速去重。

位运算效率高,适用于特定场景。如判断奇偶用num & 1,交换变量值a ^= b; b ^= a; a ^= b。

字符串题目优先考虑正则。掌握正则的exec、test方法,以及字符串的search、match、replace、split方法。例如用replace(/[^0-9]/g, '')提取数字。
刷题以通过为目标,无需封装重用。减少函数可避免参数传递的思考,提高解题速度。
递归需写函数,但建议用循环搭配栈/队列替代,降低空间复杂度。如二叉树遍历可用循环实现。
关注时间复杂度(如大数问题需优化算法)、空间复杂度(如递归改循环)。优先掌握动态规划,因其可解决多数贪心问题。
字符串问题→正则;链表/数组问题→双指针;数组问题→利用下标或额外数组;多维数组问题→降维;复杂问题→动态规划;排列问题→递归/回溯;数论问题→找规律/动态规划;树问题→递归/遍历(栈/队列);次数问题→哈希表(JS用{});大小值问题→栈/队列/哈希表;反向思考简化问题。
排序与查找:快排、归并排序、二分查找(能手撕代码)。
遍历:深度优先遍历(DFS)、广度优先遍历(BFS)。
动态规划与回溯:动态规划用于优化问题,回溯法用于排列组合问题。
链表、二叉树等数据结构题画图辅助理解;概率问题画圈圈表示交并补;点线问题画坐标系。
复杂问题举小例子分析步骤;数论问题举例子找规律;不会做时通过举例生成测试用例,部分测试用例可能通过部分测试点。
剩余可能淘汰的是智力题,需额外准备。