1 总结
非常感谢英雄哥——英雄哪里出来的九日集训专栏,让我对算法有了初步的了解。九日集训面向初学者,其内容大多比较简单,但是却包括了最基本的内容。之后有时间会将这些知识进行总结提炼,方便后来人参考,也方便自己后续回顾。
第一个源代码,梦开始的地方。用函数求两数之和,了解的是函数的可复用性。
函数题目 两整数之和
class Solution {
public:
int getSum(int a, int b) {
return a+b;
}
};
后来,有学习了循环、一维数组、一维指针,难度不断加大。指针是第一个难关。
指针题目 基于排列构建数组
class Solution {
public:
vector<int> buildArray(vector<int>& nums) {
int n = nums.size();
vector<int> ans;
for (int i = 0; i < n; ++i){
ans.push_back(nums[nums[i]]);
}
return ans;
}
};
克服指针后,学习起来的路就顺畅多了,从排序,贪心算法,二维数组,二维指针,再到最后的递归,看到自己刷完的leetcode题目会有一点小小的成就感。
值得纪念的最后一天,递归题目 阶乘后的零
int trailingZeroes(int n){
if(n<5){
return 0;
}
return n/5 + trailingZeroes(n/5);
}
虽然代码很简单,但是分析的过程确实至关重要的,在Day 9 中进行了仔细的梳理,不懂的小伙伴可以自行前往,这里不再赘述。 九日集训 Day 9 简单递归
以上就是这九天来的简单总结。这里我想再重复一遍,迈过Day 4的指针后,后面的学习内容就会容易很多,所以,读者朋友,如果你也遇到了类似的困难,坚持下来迈过这道坎,接下来的路会更平坦。写下这篇博客,主要是因为学习的过程总是相似的,如果读者朋友遇到困难的时候,现在的总结说不定就能帮上一点小忙,那就值得了。
2 不足之处
九日集训完成后,愈发觉得自己的知识水平有限,需要进行更多的锻炼。在此过程中,也存在许多不足,例如,对于leetcode中的题目没有进行深入剖析,以至于让文章的内容成了“贴代码”,后续给自己定个目标,重新回顾这九天的学习内容,将题目的思路,关键点以及每一行代码实现的功能详细写下来,形成真正能够帮助0基础初学者入门的内容。
当然,还有很多需要改进的地方,希望读者朋友们能够不吝赐教,只有得到反馈,我才能知道该怎么去改进自己的内容,从而更好地将知识讲清楚,弄明白,和大家一起进步。