
『算法』『数据结构』
_LanXiu
西北工业大学 2018届 计算机学院 计算机科学与技术专业 本科在读
展开
-
『算法』『数据结构』 浅谈滑动窗口算法(思想)[双指针法中的左右指针法],理解程序员必懂必会的计算机常见算法——滑动窗口算法(思想)[双指针法中的左右指针法]
文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识滑动窗口算法可以用以解决数组、字符串的子元素问题。所谓滑动窗口,就像描述的那样,可以理解成是一个会滑动的窗口,每次记录下窗口的状态,再找出符合条件的适合的窗口。它可以将嵌套的循环问题,更高效的解决。基本思想与原理滑动窗口算法,可以将双层嵌套的循环问题,转换为单层遍历的循环问题。...原创 2020-02-15 02:44:31 · 781 阅读 · 0 评论 -
『算法』『数据结构』 浅谈贪心算法,理解程序员必懂必会的计算机常见算法——贪心算法
文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解。基本思想与原理贪心选择是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,...原创 2020-02-14 01:30:21 · 1179 阅读 · 0 评论 -
『算法』『数据结构』 浅谈分治算法,理解程序员必懂必会的计算机常见算法——分治算法
文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识分治法,字面意思是“分而治之”,就是把一个复杂的一个问题分成两个或多个相同或相似的子问题,再把子问题分成更小的子问题直到最后子问题可以简单地直接求解,原问题的解即子问题的解的合并,这个思想是很多高效算法的基础,例如排序算法(快速排序,归并排序),傅里叶变换(快速傅里叶变换)等。基...原创 2020-02-13 17:41:37 · 946 阅读 · 0 评论 -
『算法』『数据结构』 浅谈二分算法,理解程序员必懂必会的计算机常见算法——二分算法
文章目录基本认识基本思想与原理适用的问题求解的步骤与模板引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识二分算法,又名二分查找、折半查找,是一种查找算法,是最基础的,最简单易学且高效实用的算法之一。二分算法的时间复杂度为:O(logN)。因此基本上做题中大部分要求时间复杂度与’logN’有关的,都要考虑会用到二分算法。基本思想与原理二分查找操作的数据集是一个有序的数据集。开始时,...原创 2020-02-05 22:12:19 · 3007 阅读 · 0 评论 -
『算法』『数据结构』 浅谈回溯算法(DFS 深度优先算法),理解程序员必懂必会的计算机常见算法——回溯算法(DFS 深度优先算法)
文章目录基本认识基本思想与原理适用的问题求解的步骤与模板回溯函数的三个组成部分:回溯函数万能模板:引例部分实战部分趁热打铁 刷题练习部分(持续更新)基本认识回溯算法(DFS 深度优先算法)实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原...原创 2020-02-05 21:11:10 · 887 阅读 · 0 评论 -
『算法』『数据结构』 浅谈动态规划算法,理解程序员必懂必会的计算机常见算法——动态规划
基本认识动态规划( dynamic programming )算法是解决多阶段决策过程最优化问题的一种常用方法,难度比较大,技巧性也很强。利用动态规划算法,可以优雅而高效地解决很多贪婪算法或分治算法不能解决的问题。基本思想与原理动态规划算法的基本思想是:将待求解的问题分解成若干个相互联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解;对于重复出现的子问题,只在第一次遇到的时候对它...原创 2020-02-05 18:21:37 · 1045 阅读 · 0 评论