递归
文章平均质量分 80
MD_
不拼一下 你怎么知道你不会成功!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 22. 括号生成【递归,一个位置一个位置的搜索】
文章目录问题描述解题报告实现代码 问题描述 解题报告 方法一 最朴实的做法就是将所有的的序列枚举出来,然后判断该序列是否满足合法的字符串的要求 方法二【参考官网题解】 采用回溯的方法,在生成字符串序列时就判断是否满足合法字符串的要求; 左括号的产生不受右括号的限制,只受到数量的限制; 右括号除了自己的限制以外,还受到左括号的限制,即:右边剩余可以使用的括号数量一定得严格大于左边剩余的数量的...原创 2019-12-02 18:39:22 · 125 阅读 · 0 评论 -
Leetcode 124. 二叉树的最大路径和【递归】
文章目录问题描述解题报告实现代码参考资料 问题描述 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 解题报告 以某一子树的根节点为研究对象,如果最大路径经过该子树,则必定 经过该子树的根节点以及该子树 左右子树 中的某一子树。 实现时: 设置全局变量 val,它记录了整棵树的最大路径和。 递归搜索每棵子树的根节点,其返回经过该子树根节点的的最大路径和【该路径只经过该子树的某一子树】。 在递归的过程中,更原创 2020-06-27 17:39:01 · 543 阅读 · 1 评论 -
不同的二叉搜索树系列 【递归】
文章目录Leetcode 96. 不同的二叉搜索树问题描述解题报告实现代码Leetcode 95. 不同的二叉搜索树 II问题描述解题报告实现代码总结参考资料 Leetcode 96. 不同的二叉搜索树 问题描述 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 解题报告 完全模仿 Leetcode 95 来实现的。 实现代码 class Solution { public: int helper(int start,int end){ int ret=0;原创 2020-06-26 14:27:11 · 365 阅读 · 0 评论 -
UVA 839 Not so Mobile
链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=10&page=show_problem&problem=780代码:#include<cstdio> ///使用引用传值 /* 如果在参数名之前加一个“&”符号,就表示这个参数按照传引用(by reference)的方式传递。通过这种原创 2017-03-08 16:59:07 · 495 阅读 · 0 评论 -
UVA699 The Falling Leaves
题目链接:http://www.cnblogs.com/cute/p/3640416.html代码:#include<stdio.h> #include<string.h> #include<iostream> using namespace std; #define maxn 10000 int res[maxn]; ///这种做法通俗易懂!!! void dfs(int val,int pos)原创 2017-03-08 21:59:57 · 381 阅读 · 0 评论 -
无根树转有根树
描述 输入一个n个节点的无根树的各条边,并指定一个根节点,要求把该树转化为有根树,输出哥哥及诶单的父节点编号。 题解 从根节点开始对树进行dfs。遍历到每个节点时,使用数组p来存储该节点的父节点。 注意:状态转移时,一定要判断下一个状态是否和下一个状态的父节点(也就是当前状态)相等,否则会引起无限递归。 int temp=G[u][i]; if(temp!=fa){ dfs(temp,p[...原创 2019-03-23 16:24:49 · 769 阅读 · 0 评论 -
UVA129困难的串
题目链接:代码:#include<cstdio> #include<cstring> #include<iostream> using namespace std; const int MAXN = 100; char a[MAXN]; int n, L, cnt; bool dfs(int cur) { /*每递归调用一次,形成的搜索串的名次就会加一,用cnt记录。其中后缀++表示的是先判原创 2017-03-12 10:37:22 · 393 阅读 · 0 评论 -
归并排序&逆序对
实现方法一:#include <iostream> #include<cstdio> #define maxn 10000 int aa[maxn]; using namespace std; int n;void Merge(int *A,int *B,int s,int m,int n) { int j,k; for(k=s,j=m+1; s<=m&&j<=n; k++)原创 2017-03-11 16:46:13 · 291 阅读 · 0 评论 -
LeetCode 526 Beautiful Arrangement
题目链接: https://leetcode.com/problems/beautiful-arrangement/?tab=Description代码如下:#include <iostream> #include<cstdio> #include<cstring> using namespace std; int sum; int aa[20]; int vis[20]; void search原创 2017-03-04 19:19:31 · 116 阅读 · 0 评论 -
51. N-Queens
题目链接: https://leetcode.com/problems/n-queens/?tab=Description 代码如下:#include <iostream> #include<vector> #include<string> #include<cstdio> #include<cstring> using namespace std; #define maxn 10000 v原创 2017-03-04 17:46:17 · 379 阅读 · 0 评论 -
Subsets
题解: 这是一道典型的递归题:考虑每个元素,其有加入子集和不加入子集两种选择。 代码:class Solution { public: int vis[1000000]; vector<vector<int>> ans; void robot(int cur,vector<int> nums) { vector<int>aa; if原创 2017-03-03 21:02:49 · 242 阅读 · 0 评论
分享