算法刷题小计
每次刷题就想到钱雪忠老师..
把东西都放到public库里了
https://github.com/lyzbcy/Coding-practice
目前在做leetcode的面试150题
https://leetcode.cn/studyplan/top-interview-150/
做得差不多了会把每一题具体的心得总结放到这个文章里的
⚔️ C++ 刷题特种兵突击指南
核心思想: 我们不学 C++ 开发,我们只是给 C 语言穿上一层 STL (标准库) 的外骨骼。除了以下 4 个板块,其他(面向对象、继承、多态、文件流)统统不看!
🎯 板块一:彻底告别指针噩梦 (引用) 耗时:30分钟
在 C 语言刷题时,`int* returnSize` 这种写法很烦人。C++ 引入了 **引用 (&)**,让你像操作普通变量一样操作指针。
- 必看视频:P89 - P91 (引用的基本语法 / 引用做函数参数)
- 学会这招即可:
void swap(int &a, int &b) { // 加上 & 就行了,不用写 *a int temp = a; a = b; b = temp; }
📦 板块二:数组升级 (Vector) 耗时:45分钟
刷题 80% 的情况都在用数组。C++ 的 vector 是会自动扩容的数组。
- 必看视频:P186 (vector基本概念) ➜ P188 (构造) ➜ P191 (插入和删除)
- 核心API:
push_back()(尾插),pop_back()(尾删),size()(长度),resize() - 学会这招即可:
vector<int> v; v.push_back(10); // 自动扩容,不用 realloc int len = v.size(); // 也不用传 returnSize 了
⚡ 板块三:查表神器 (Map/Set) 耗时:40分钟
解决“两数之和”这类问题的物理外挂。C 语言手写哈希表要半小时,C++ 只要一行。
- 必看视频:P205 (set容器) ➜ P210 (map容器)
- 注意:视频里讲的是
set/map(红黑树,有序),刷题更常用unordered_set/map(纯哈希,无序,O(1)),用法 API 完全一样,名字改一下就行。 - 核心API:
map[key] = val,find(),count()
🔧 板块四:偷懒工具箱 (Algorithm) 耗时:20分钟
不想手写快排?不想手写二分查找?
- 必看视频:P228 (常用遍历算法) ➜ P232 (常用排序算法 sort)
- 学会这招即可:
sort(v.begin(), v.end());一行代码完成快排。
🚀 点击出发 (直达黑马 P89)
(记得按上面的列表跳着看,别贪多!)
本文由作者按照 CC BY 4.0 进行授权