Billy's Blog

欢迎访问我的博客

198. House Robber

1. 常规思路(TTL) public int rob(int[] nums) { return solve(nums.length-1, nums); } /** * @param idx 现在抢到的第几家店 * @param nums * @retu...

2018-07-27 19:46:16

阅读数:155

评论数:0

120. Triangle

给出一个三角形状的整数list,从第一行开始向下移动,每次只能向下一行相邻的数移动,要求求出从第一行到 最后一行所经过的数字的和最小的方法。 1. 自顶向下计算 public int minimumTotal(List<List<Intege...

2018-07-24 17:54:11

阅读数:156

评论数:0

回溯法思想

回溯法是一种试探求解的方法,通过对问题的归纳分析,找出求解问题的一个线索,沿着这一线索往前试探,若试探成功,即得到解;若试探失败,就逐步往回退,换其他路线再往前试探。因此,回溯法可以形象地概况为“向前走,碰壁就回头”。        回溯法从开始结点(根结点)出发,以深度优先的方式搜索整个解空间(...

2018-05-25 17:20:24

阅读数:79

评论数:0

贪心算法思想

贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅是在某种意义上的局部最优解。用局部解构造全局解,即从问题的某一个初始解逐步逼近给定的目标,以尽可能快的求得更好的解。当某个算法中的某一步不能再继续前进时,算法停止。利用贪心算法解决问题时需要解...

2018-05-13 16:38:03

阅读数:146

评论数:0

53. Maximum Subarray

给你一个整数数组nums,找出包含至少一个数字的连续子数组,要求它的和最大,返回它的和。 1. 常规思路 考虑每一个子数组的和的大小,在此基础上计算出和最大的数组。 // 考虑step为1到n的情况(超时) public int maxSubArray(int[] nums) { ...

2018-04-18 12:23:59

阅读数:238

评论数:0

动态规划思想

动态规划是解决多阶段决策最优化问题的一种思想方法。所谓“动态”,指的是在问题的多阶段决策中,按 某一顺序,根据每一步所选决策的不同,将引起状态的转移,最终在变化的状态中产生一个决策序列。动态规 划就是为了使产生的决策序列在符合某种条件下达到最优。 1. 数学描述 先来看一个简单的多阶...

2018-04-08 10:33:03

阅读数:80

评论数:0

迭代算法

迭代法也称辗转法,迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题的过程,为实现 这一过程所使用的方法称为迭代法。常见的迭代法是牛顿迭代法,其他还包括最速下降法、共轭迭代法、最小 二乘法、线性规划、非线性规划、遗传算法、模拟退火等。 使用迭代算法要解决三个方面的问题: (1...

2018-04-01 14:43:02

阅读数:1418

评论数:0

递归的应用

递归是指函数/过程/子程序在运行过程中直接或间接的调用自身而产生的重入现象。在定义一个过程或函数时出现调用本过程或本函数的成分,称为递归。若调用自身,称为直接递归。若过程或函数p调用过程或函数q,而q又调用p,称为间接递归。在以下三种情况下,需要用到递归的方法。1. 定义是递归的有些数学公式、数列...

2018-03-31 12:27:47

阅读数:27

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭