《程序员代码面试指南--IT名企算法与数据结构题目最优解》 左程云 著 斐波拉契数列问题的递归和动态规划 【题目】:给定整数N,返回斐波拉契数列的第N项。补充问题1:给定整数N,代表台阶数,一次可以跨2个或者1个台阶,返回有多少种走法。补充问题2:假设农场中成熟的母牛每年只会生产1头小母牛,并且永远 ...
分类:
其他好文 时间:
2019-12-17 13:19:55
阅读次数:
121
题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵。 例如,下面左图中选取第22、44行和第22、44、55列交叉位置的元素得到一个2 \times 32×3的子矩阵如右图所示。 9 3 3 3 9 9 4 8 7 ...
分类:
其他好文 时间:
2019-12-16 22:48:25
阅读次数:
106
动态规划之斐波那契数列 动态规划是将一个问题切分成子问题并将子问题的结果存储起来避免重复计算的一种算法。 它有两个要件: 1)重复子问题 2)最优子结构 和分治法一样,动态规划也是有自己的子问题,所以如果没有重复子问题,那么动态规划就无法使用,因为动态规划的作用就是存储重复子问题的值;反例是,二分查 ...
分类:
其他好文 时间:
2019-12-16 13:12:46
阅读次数:
116
题目链接 Given a m * n grid, where each cell is either 0 (empty) or 1 (obstacle). In one step, you can move up, down, left or right from and to an empty c ...
分类:
其他好文 时间:
2019-12-16 00:07:26
阅读次数:
126
数据结构和算法 重点内容 数据结构:字符串、栈、队列、二叉树、优先队列、hash表(Redis怎么用的)、B+树(数据库索引) 算法:基本的几种排序、DFS、BFS、基本的动态规划、基本的图算法如果不是专门的算法工程师,消化好这些内容就够了。真的要手撕红黑树,那就有点夸张了。 参考书籍 《程序员面试 ...
分类:
其他好文 时间:
2019-12-15 23:52:10
阅读次数:
285
动态规划算法与分治法类似,其基本思想是将总问题分解成若干个子问题,先求解子问题,再结合这些子问题的解得到原问题的解。与分治法不同的是,动态规划求解的问题经分解得到的子问题往往不是相互独立的。 基本思想: 将总问题分解成多个子问题(子问题也可以继续分解,直到无法分解),计算子问题,用一个表保存已解决的 ...
分类:
其他好文 时间:
2019-12-15 18:24:59
阅读次数:
109
背包问题是动态规划的一个分支,这里先简单介绍一下动态规划的思想。 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相 ...
分类:
其他好文 时间:
2019-12-15 14:22:12
阅读次数:
97
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。 class Solution: ...
分类:
编程语言 时间:
2019-12-15 12:38:14
阅读次数:
105
题目来源: "领扣 | LintCode" 有 i 个物品和一个总容量为 j 的背包. 给定数组 weight 表示每个物品的重量和数组 value 表示每个物品的价值,求最大价值。(物品不能分割) 背包问题II 这道题是一道动态规划(dp)算法的基础题,有两种实现方式,分别是递归和递推(迭代),前 ...
分类:
其他好文 时间:
2019-12-15 12:28:45
阅读次数:
83
描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触 ...
分类:
其他好文 时间:
2019-12-13 19:44:26
阅读次数:
81