
算法+剑指offer
_Always_
这个作者很懒,什么都没留下…
展开
-
算法设计与分析--动态规划
动态规划:动态规划:通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划问题常常适用于有重叠子问题和最优子结构性质的问题。动态规划视图仅仅解决每个子问题一次,从而减少计算量,一旦某个给定的子问题已经解出,则将其记忆化存储,以便下一次需要同一个子问题时直接查表。与分治法的区别:分治法:将分解后的子问题看作是相互独立的,通过递归来做动态规划:将分解后的子问题理解为相互之...原创 2019-04-08 09:24:17 · 339 阅读 · 0 评论 -
算法设计与分析--贪心算法
汽车加油问题Time Limit:1000 msMemory Limit:65536 KiBProblem Description一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。对于给定的n和k个加油站位置,计算最少加油次数。Input输入数据的第一行有2 个正整数n和k(...原创 2019-04-10 14:31:16 · 338 阅读 · 0 评论 -
算法设计与分析--搜索算法
回溯算法回溯算法也叫试探算法,是一种系统的搜索问题解的方法。回溯法可以看做是递归的一种特殊形式。在回溯时,应当:保存当前步骤,如果是一个解就输出,维护状态,使搜索路径尽量不重复(体现在记录当期数据是否被访问)。必要时,应该对不可能的解进行剪枝。回溯法可以被认为是一个有过剪枝过程的DFS子集和问题Time Limit:1000 msMemory Limit:6...原创 2019-04-16 21:34:45 · 540 阅读 · 0 评论 -
算法设计与分析--分治
众数问题给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的由n 个自然数组成的多重集S,计算S的众数及其重数。如果出现多个众数,请输出最小的那个。Input输入数据的第1行是多重集S中元素个数n(n<1300000);接下来的n行中,每行有一个最...原创 2019-03-15 19:58:01 · 598 阅读 · 0 评论