![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
文章平均质量分 80
MD_
不拼一下 你怎么知道你不会成功!
展开
-
Leetcode 22. 括号生成【递归,一个位置一个位置的搜索】
文章目录问题描述解题报告实现代码问题描述解题报告方法一最朴实的做法就是将所有的的序列枚举出来,然后判断该序列是否满足合法的字符串的要求方法二【参考官网题解】采用回溯的方法,在生成字符串序列时就判断是否满足合法字符串的要求;左括号的产生不受右括号的限制,只受到数量的限制;右括号除了自己的限制以外,还受到左括号的限制,即:右边剩余可以使用的括号数量一定得严格大于左边剩余的数量的...原创 2019-12-02 18:39:22 · 84 阅读 · 0 评论 -
Leetcode 124. 二叉树的最大路径和【递归】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。解题报告以某一子树的根节点为研究对象,如果最大路径经过该子树,则必定 经过该子树的根节点以及该子树 左右子树 中的某一子树。实现时:设置全局变量 val,它记录了整棵树的最大路径和。递归搜索每棵子树的根节点,其返回经过该子树根节点的的最大路径和【该路径只经过该子树的某一子树】。在递归的过程中,更原创 2020-06-27 17:39:01 · 462 阅读 · 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 · 289 阅读 · 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 · 441 阅读 · 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 10000int res[maxn];///这种做法通俗易懂!!!void dfs(int val,int pos)原创 2017-03-08 21:59:57 · 323 阅读 · 0 评论 -
无根树转有根树
描述输入一个n个节点的无根树的各条边,并指定一个根节点,要求把该树转化为有根树,输出哥哥及诶单的父节点编号。题解从根节点开始对树进行dfs。遍历到每个节点时,使用数组p来存储该节点的父节点。注意:状态转移时,一定要判断下一个状态是否和下一个状态的父节点(也就是当前状态)相等,否则会引起无限递归。int temp=G[u][i];if(temp!=fa){ dfs(temp,p[...原创 2019-03-23 16:24:49 · 669 阅读 · 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 · 350 阅读 · 0 评论 -
归并排序&逆序对
实现方法一:#include <iostream>#include<cstdio>#define maxn 10000int 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 · 255 阅读 · 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 · 80 阅读 · 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 10000v原创 2017-03-04 17:46:17 · 327 阅读 · 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 · 210 阅读 · 0 评论