随笔分类 - 算法
摘要:滑窗法在算法题中大量应用,其思想简洁强大,但是往往在维护左右指针时候容易出错,现总结整理如下: 1. 介绍 滑动窗口法,也叫尺取法(可能也不一定相等,大概就是这样 =。=),可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,可以通过旧有的计算结果对
阅读全文
摘要:贪心算法 一、算法思想 贪心算法(Greedy Alogorithm)又叫登山算法,它的根本思想是逐步到达山顶,即逐步获得最优解,是解决最优化问题时的一种简单但是适用范围有限的策略。 贪心算法没有固定的框架,算法设计的关键是贪婪策略的选择。贪心策略要无后向性,也就是说某状态以后的过程不会影响以前的状
阅读全文
摘要:分治算法 一、算法思想 分治法作为一种常见的算法思想,其概念为:把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后子问题可以简单的直接求解,子问题的解的合并即是原问题的解。举个例子,要算16个数的和可能一下子算不出来的,但是可以通过几次一分为二(拆分),直到分成
阅读全文
摘要:二分算法 目录: 一、算法思想 二、二分法算法分析 三、二分法实现 一、算法思想 二分思想一般用于查找,见其名知其意,这是一个半半开的算法。第一次接触二分思想的时候是高中的数学学习中,给定一个方程 f(x) = 0的根所在的区间,可以用根存在定理不断二分区间,当区间长度小于给定的精度时,即可近似求出
阅读全文
摘要:递归 一、算法思想: 1、定义 :在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。简单来说,递归表现为函数调用函数本身。 2、特点: 递归有两个显著的特征,终止条件和自身调用: 自身调用:原问题可以分解为子问题,子问题和原问题的求解方法是一致的,即都是调用自身的同一个函数。
阅读全文
摘要:枚举 目录: 一、算法思想 二、完美立方问题 三、生理周期(生物节律) 四、假币问题 一、算法思想 枚举:即对可能的解集合一一列举。 枚举算法的实现往往通过使用循环(嵌套)就能够轻易实现,所以并没有什么思维难度。 解题思路: 1. 对解的每个参数的数据范围采用循环语句一一枚举,对每次枚举采用if语句
阅读全文