递归
豌豆射手GCC
这个作者很懒,什么都没留下…
展开
-
动态规划+记忆化递归 343. 整数拆分
343. 整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。暴力递归每次尝试两数相乘,递归为更多数相乘;class Solution {public: int integerBreak(int n) { if(n原创 2020-06-25 11:32:35 · 250 阅读 · 0 评论 -
分治+递归 241. 为运算表达式设计优先级
241. 为运算表达式设计优先级给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例 1:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2示例 2:输入: "2*3-4*5"输出: [-34, -14, -10, -10, 10]解释: (2*(3-(4*5))) = -34 ((2*3)-(4*5)) = -14原创 2020-06-04 10:59:37 · 168 阅读 · 0 评论 -
递归+堆栈 394. 字符串解码
394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例:s = "3[a]2[bc]", 返回 "aaabcbc".s = "3原创 2020-05-28 11:55:52 · 260 阅读 · 0 评论 -
递归+遍历二叉树 124. 二叉树中的最大路径和
124. 二叉树中的最大路径和给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7] -10 / \ 9 20 / \ 15 7输出: 42解题:1对每个节点得到左边的最大值和右边原创 2020-05-20 13:35:46 · 285 阅读 · 0 评论 -
动态规划+卡塔兰数+递归 96. 不同的二叉搜索树 95. 不同的二叉搜索树 II
96. 不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1原创 2020-05-15 16:02:12 · 168 阅读 · 0 评论 -
递归+vector+string leetcode 51. N皇后+52. N皇后 II
N皇后n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q",...原创 2020-04-19 19:51:47 · 160 阅读 · 0 评论 -
C++ 递归 002:2的幂次方表示
002:2的幂次方表示总时间限制: 1000ms 内存限制: 65536kB描述任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示) 3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2...原创 2020-03-25 15:13:45 · 413 阅读 · 0 评论 -
递归 001:全排列
001:全排列总时间限制: 1000ms 内存限制: 65536kB描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个...原创 2020-03-25 13:52:36 · 236 阅读 · 0 评论 -
递归 002:简单的整数划分问题
002:简单的整数划分问题总时间限制: 100ms 内存限制: 65536kB描述将正整数n 表示成一系列正整数之和,n=n1+n2+…+nk, 其中n1>=n2>=…>=nk>=1 ,k>=1 。正整数n 的这种表示称为正整数n 的划分。正整数n 的不同的划分个数称为正整数n 的划分数。输入标准的输入包含若干组测试数据。每组测试数据是一个整数N(0 &l...原创 2020-03-24 19:32:15 · 313 阅读 · 0 评论 -
递归 001:Boolean Expressions
001:Boolean Expressions总时间限制: 1000ms 内存限制: 65536kB描述The objective of the program you are going to produce is to evaluate boolean expressions as the one shown next:Expression: ( V | V ) & F &am...原创 2020-03-24 19:17:41 · 207 阅读 · 0 评论 -
分治 002:求排列的逆序数
002:求排列的逆序数总时间限制: 1000ms 内存限制: 65536kB描述在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j < k 且 ij > ik...原创 2020-03-22 11:30:54 · 503 阅读 · 0 评论 -
分治 001:输出前k大的数
001:输出前k大的数总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB描述给定一个数组,统计前k大的数并且把这k个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k。k < n。...原创 2020-03-22 11:19:11 · 570 阅读 · 1 评论 -
动态规划 003:最佳加法表达式
003:最佳加法表达式总时间限制: 1000ms 内存限制: 65536kB描述给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=50)第二行是若干个数字。...原创 2020-03-21 12:26:09 · 967 阅读 · 0 评论