常见算法套路

常见算法套路 1) 框架思维(遍历是核心) 解释 很多题目本质是「遍历某种结构」:数组、链表、树、图。先确定数据结构,再确定遍历顺序,最后把业务判断填进遍历骨架。 代码框架 1 2 3 4 5 6 7 8 9 10 11 12 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 #include <vector> using namespace std; struct ListNode { int val; ListNode* next; }; struct TreeNode { int val; TreeNode* left; TreeNode* right; }; void processValue(int x) { // TODO: 业务处理 (void)x; } void traverseArray(const vector<int>& nums) { for (int i = 0; i < (int)nums.size(); ++i) { processValue(nums[i]); } } void traverseList(ListNode* head) { for (ListNode* p = head; p != nullptr; p = p->next) { processValue(p->val); } } void traverseTree(TreeNode* root) { if (root == nullptr) return; // 前序位置 processValue(root->val); traverseTree(root->left); traverseTree(root->right); // 后序位置 } 2) 二分查找(缩小搜索空间) 解释 当问题满足单调性(答案在一边)时,用二分不断折半区间。关键在区间定义一致(闭区间或左闭右开)和边界收缩逻辑一致。 ...

2026年5月27日 · hyyfrank