基本算法
山鬼谣弋痕夕
学习,记录,改变
展开
-
回溯法学习----两个例子
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。三个重要的点:1、首先判断其是否可以用回溯法来解决,在LeetCode里面返回值为[[],[],[]]这种的多用回溯法;2、找到回溯的条件,找到递归之间的关系,有...原创 2018-05-04 16:44:54 · 1116 阅读 · 0 评论 -
看完这篇,你要入门动态规划
动态规划:通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。基本思想若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量: 一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解...原创 2018-05-03 17:13:59 · 234 阅读 · 0 评论 -
回溯算法一个例子(解释详细,注意避坑)
回溯算法简单一个例子:给定给定数字n,从中找到和为m的组合,1到n的数字每次使用一次例 :输入:5 6输出:1 2 3 1 5 2 4 这里需要注意:1、在将其结果得到的list加到ArrayList,这里使用res.add(new ArrayList<>(list)); 是对list拷贝后放进去,如果直接ad...原创 2018-09-04 09:21:01 · 1346 阅读 · 0 评论