
递归算法
lyd1995
这个作者很懒,什么都没留下…
展开
-
圆圈中最后剩下的数字
0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制: ...原创 2020-03-30 19:22:13 · 762 阅读 · 0 评论 -
leetcode306-累加数
给定一个只包含数字 ‘0’-‘9’ 的字符串,编写一个算法来判断给定输入是否是累加数。说明: 累加序列里的数不会以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。示例 1:输入: "112358"输出: true 解释: 累加序列为: 1, 1, 2, 3, 5, 8 。1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8示...原创 2019-09-17 11:24:00 · 241 阅读 · 0 评论 -
leetcode964-表示数字的最少运算符
给定一个正整数 x,我们将会写出一个形如 x (op1) x (op2) x (op3) x … 的表达式,其中每个运算符 op1,op2,… 可以是加、减、乘、除(+,-,*,或是 /)之一。例如,对于 x = 3,我们可以写出表达式 3 * 3 / 3 + 3 - 3,该式的值为 3 。在写这样的表达式时,我们需要遵守下面的惯例: 除运算符(/)返回有理数。 任何地方都没有括...原创 2019-09-09 08:45:50 · 780 阅读 · 0 评论 -
leetcode227-基本计算器 II
实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: "3+2*2"输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。一...原创 2019-08-28 14:48:31 · 488 阅读 · 0 评论 -
LeetCode130-被围绕的区域
给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X...原创 2019-06-17 09:28:05 · 385 阅读 · 0 评论 -
LeetCode119-杨辉三角 II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]一、思路见:LeetCode118-杨辉三角C++代码class Solution {public: vector<int> ans; vector<int> getRow(int rowIn...原创 2019-06-13 12:52:02 · 154 阅读 · 0 评论 -
LeetCode118-杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]一、思路首先观察杨辉三角的特点:开始与结束的位置都是1中间的数是它左上方和右上方的数的和根据该性质,可以用...原创 2019-06-13 12:44:03 · 162 阅读 · 0 评论 -
LeetCode101-对称二叉树
给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这个问题,会很...原创 2019-05-16 10:02:46 · 94 阅读 · 0 评论 -
LeetCode100-相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2019-05-15 21:21:06 · 125 阅读 · 0 评论 -
LeetCode94-二叉树的中序遍历
给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?一、思路1、递归版本:class Solution {public: vector<int> nums; vector<int> inorder...原创 2019-04-30 20:10:48 · 137 阅读 · 0 评论 -
LeetCode95-不同的二叉搜索树 II
给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 ...原创 2019-05-08 15:31:51 · 178 阅读 · 0 评论 -
LeetCode77-组合
LeetCode77-组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]一、回溯算法很明显的回溯特征,凡是要求列出全部的可能的题目都可以用回溯算法解决并且数字都是有序的,可以加以利用,使得确保:n...原创 2019-03-28 17:19:09 · 143 阅读 · 0 评论 -
LeetCode29-两数相除
LeetCode29-两数相除给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明...原创 2019-03-03 14:24:22 · 248 阅读 · 0 评论