这月初我开始认真的去学习算法,算法是一个十分搞脑子的东西,但是当你深入去了解算法的时候,你又会发现算法又不同于数学,它有着自己的奇妙之处。
我也是从上周才知道算法和数据结构之间的关系,有一些算法题是需要有数据结构的知识基础才能找到思路,在没有接触数据结构之前,我解算法题基本上用的就是迭代和一些普通的逻辑,但是这些思想只能解决一些简单的小题,我第一次开始接触数据结构是因为一道蓝桥上的算法题——2n皇后,2n皇后是八皇后的一个变形题,大体思路还是一样的,就是深度优先搜索+回溯。
我第一次想这道题的时候就想了很长很长时间,在网上找的解题思路很难去理解,但是无外乎都看见了两个次,深度优先搜索和回溯,我便对这两个词进行查阅,发现其中深度优先搜索牵扯到了树的概念,接连便接触到了数据结构,因为当时离比赛仅剩不到两周的时间,我是肯定看不完数据结构的,我知道就题论题。我的递归很差,基本上没怎么写过递归的题,而递归的思想和它的知识点又是必考的,我便从递归开始学习。
先从最简单的阶乘,斐波那契数列,走楼梯再到汉诺塔,八皇后,其中八皇后是最让我头疼的一个,整整3天才攻克掉了这道题,当然对递归的思想也有了进一步的认识,随之2n皇后便也解决了。
再往后学习就是动态规划,但是由于看的比较急,自己理解的也不是太够,结果这次比赛的第一道题便是动态规划,唉,只能怪自己的水平还不够。
这两周的学习自己也明白算法这块水有多么深,自己也有很多很多的经典算法没有看,基本思想没有掌握。
Whatever,加油吧。