
算法
Che-ri-sh
这个作者很懒,什么都没留下…
展开
-
动态规划算法Dynamic Programming
动态规划与分治法相似,都是通过组合子问题的解来求解原问题。不同的是,分治法将问题划分为互不相交的子问题,递归的求解子问题,再将他们的解组合起来,求出原问题的解。与之相反,动态规划应用于子问题重叠的情况,即不同的子问题具有公共的子子问题。在这种情况下,分治法会做许多不必要的工作,他会反复求解那些公共子子问题。而动态规划只会对子子问题求解一次,将其保存在一个表格中,从而避免每次求解时都重新计算。现在我...原创 2018-11-20 15:06:11 · 237 阅读 · 0 评论 -
回文字符串问题
回文字符串,是指正读和倒读的结果一样的字符串,从结构上来看,两侧的字符呈中心对称。在汉语中,有很多有趣的回文诗词,回文对联熟语,比如“响水池中池水响,黄金谷里谷金黄”、“雾锁山头山锁雾,天连水尾水连天”等。根据其结构特征,我们很容易设计出一个判断字符串是否回文的算法:isPalindromic(s)boolean flag=truechar[] chars=s.toCharArray()...原创 2018-11-13 14:44:24 · 1527 阅读 · 0 评论 -
缓存思想在算法设计中的应用
1.问题引入我们先看一下简单的斐波那契数列的递归算法。百度百科中对该问题是这样定义的:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F...原创 2018-11-12 13:59:05 · 326 阅读 · 0 评论 -
基于双指针的滑动窗口方法在数组问题中的应用
LeetCode中有道题:取一个字符串中不含重复字符的最长子串的长度。原题是:Longest Substring Without Repeating CharactersGiven a string, find the length of the longest substring without repeating characters. 最直接的想法是暴力法穷举所有的子串,取其中不...原创 2018-11-11 22:18:32 · 264 阅读 · 0 评论