递归
yh_cheer
这个作者很懒,什么都没留下…
展开
-
【剑指offer】面试题46:把数字翻译成字符串
题目描述给定一个数字,按规则翻译成字符串:0翻译成“a”,1翻译成“b”,以此类推…25翻译成“z”,一个数字可能有多种翻译,比如12258有5种翻译,分别是bccfi,bwfi,bczi,mcfi,mzi。编程实现一个函数,计算一个数字有多少种不同解法。解题思路:最开始的一个或两个数字被转换为字符后,接着翻译后面的数字。即递归的思想。几个注意点:1.递归是自上而下解决问题的,但会...原创 2019-03-16 03:29:21 · 176 阅读 · 0 评论 -
【剑指offer】面试题47:礼物的最大价值
题目描述在m*n的棋盘里每格一个礼物,每个礼物有价值(大于0)。你从棋盘左上角开始拿礼物,并每次往左和下移动一格,直到达到棋盘右下角。问最多拿多少价值的礼物?解题思路:几个注意点:解题步骤:【考点】 递归 动态规划...原创 2019-03-17 01:13:42 · 445 阅读 · 0 评论 -
【剑指offer】面试题48:最长不含重复字符的子字符串
题目描述从字符串中找出一个最长的不包含重复字符的子字符串,计算这个字符串长度。字符串只包含a-z字母。如“arabcacfr”,最长的包含重复子字符串是“acfr”,长度是4。解题思路:已知第i-1个字符的最长子字符串长度,根据第i个字符是什么,总结规律,得出第i个字符的最长子字符串长度。几个注意点:1.递归用循环代替减少重复计算。解题步骤:先推递归式:一开始没看懂是因为看错...原创 2019-03-17 15:20:16 · 185 阅读 · 0 评论 -
【剑指offer】面试题51:数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述:题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,s...原创 2019-03-19 01:00:22 · 155 阅读 · 0 评论 -
【剑指offer】面试题55:平衡二叉树
题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。解题思路递归判断每个节点的深度是否满足平衡二叉树的要求,即左右子树的高度差不超过1。注意点递归:从上往下递归会造成重复计算影响效率,可以通过后序遍历从下往上解决。剪枝:一旦有结点判断出不是平衡二叉树,则不必再判断后续未处理的结点,直接返回结果。解题步骤递归计算结点的深度,从最左下的结点开始判断,如果不满足平衡二叉...原创 2019-03-29 14:24:12 · 261 阅读 · 0 评论 -
【剑指offer】面试题55:二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路如果只有一个结点,深度为1。如果该结点有左右树,深度就是左右子树的深度的较大值+1。【考点】 树 递归class Solution {public: int TreeDepth(TreeNode* pRoot) { ...原创 2019-03-26 20:21:43 · 116 阅读 · 0 评论