
递归
csu_xiji
这个作者很懒,什么都没留下…
展开
-
力扣 938. 二叉搜索树的范围和 递归
https://leetcode-cn.com/problems/range-sum-of-bst/思路:简单题就不多说了,遍历整棵树计算即可。dfs\bfs都行,考虑效率的话可以加一些剪枝。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), lef原创 2021-04-27 01:45:32 · 142 阅读 · 0 评论 -
力扣 897. 递增顺序搜索树 中序遍历 思维
https://leetcode-cn.com/problems/increasing-order-search-tree/思路:最简单的方法就是用数组存储中序遍历的结果,再按照要求重建。这种做法没什么意思,我们看一下原地修改的算法。我们可以用preprepre记录中序遍历中当前节点的上一节点,在处理完左子树后,preprepre指向左子树的最右节点,需要令pre.right=cur,cur.left=nullpre.right=cur,cur.left=nullpre.right=cur,cur.le原创 2021-04-25 01:42:21 · 148 阅读 · 0 评论 -
团体程序设计天梯赛 L2-006 树的遍历 递归+思维
https://pintia.cn/problem-sets/994805046380707840/problems/994805069361299456思路:二叉树的后序遍历和中序遍历可以确定这颗二叉树的形状(左右根、左根右,找到根节点然后分出左右子树递归处理),那么最普通的思路就是据此建立出一颗二叉搜索树,那么再对其做层次遍历。但是这样写太麻烦了,我们考虑最开始所提到的递归过程,显然同一层的节点将按照从左至右的顺序被访问(不一定连续被访问哦),但是同一层有序已经满足我们的需求了,只不过最后需要按照深原创 2020-11-02 01:06:15 · 299 阅读 · 0 评论 -
团体程序设计天梯赛 L2-004 这是二叉搜索树吗 递归
https://pintia.cn/problem-sets/994805046380707840/problems/994805070971912192思路:先序遍历即根左右,假设对应的数组区间为[head,tail][head,tail][head,tail],那么依据二叉搜索树的性质,可以将其分为三部分:1.1.1.根节点,即a[head]a[head]a[head];2.2.2.左子树,a[head…l]a[head…l]a[head…l];3.3.3.右子树,a[r…tail]a[r…tail原创 2020-10-23 19:46:21 · 166 阅读 · 0 评论 -
力扣 856. 括号的分数 递归/栈/数学
https://leetcode-cn.com/problems/score-of-parentheses/思路一:dfsdfsdfs,考虑当前位置idxidxidx为(((,那么下一位置要么为)))要么为(((,如果是前者,那么当前层的分数加1,如果是后者,就需要进入更深一层计算。class Solution {public: int scoreOfParentheses(string S) { int idx=0; return dfs(S,idx);原创 2020-08-12 22:46:40 · 330 阅读 · 0 评论 -
力扣 341. 扁平化嵌套列表迭代器 递归/栈/python 生成器
https://leetcode-cn.com/problems/flatten-nested-list-iterator/思路一:最简单的思路,采用递归直接预处理出一个数组来存储结果,那么这两个函数就很好写了。但是我感觉这样的设计并不能算是迭代器。/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its原创 2020-08-12 11:38:36 · 257 阅读 · 0 评论 -
力扣 203. 移除链表元素 链表+递归
https://leetcode-cn.com/problems/remove-linked-list-elements/思路一:迭代。注意需要删除头节点的情况(可以新增一个伪头节点,方便操作)。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };原创 2020-08-09 16:18:25 · 291 阅读 · 0 评论 -
力扣 剑指 Offer 18. 删除链表的节点 链表+递归
https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/思路一:迭代法,特判一下头节点的情况就可以了。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cl原创 2020-08-06 13:19:13 · 155 阅读 · 0 评论 -
力扣 21. 合并两个有序链表 链表+递归
https://leetcode-cn.com/problems/merge-two-sorted-lists/思路一:迭代做法。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nul原创 2020-08-05 23:51:36 · 295 阅读 · 0 评论 -
力扣 24. 两两交换链表中的节点 链表+递归
https://leetcode-cn.com/problems/swap-nodes-in-pairs/思路一:顺着做,这样也有两种做法。第一种就是直接两个两个交换,那么需要记录前驱和后继。第二种就是先把链表分成两个小的链表,一个存储奇数位置的树,一个存储偶数位置的数,然后再把他们合起来。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *原创 2020-08-05 23:41:32 · 229 阅读 · 0 评论 -
力扣 剑指 Offer 24. 反转链表 思维 递归
https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/思路一:正着做,假设当前节点为curcurcur,前一节点为preprepre,那么只需要把curcurcur接到preprepre前面即可,当然需要一个临时变量预先存储下一节点nxtnxtnxt。注意细节,需要把尾节点的nextnextnext设为空。/** * Definition for singly-linked list. * struct ListNode { *原创 2020-08-03 22:30:36 · 333 阅读 · 0 评论 -
力扣 剑指 Offer 06. 从尾到头打印链表 链表 递归
https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/思路一:顺序存储后反向一下再返回即可。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */cla原创 2020-08-03 20:47:22 · 166 阅读 · 0 评论 -
力扣 4. 寻找两个有序数组的中位数 递归+二分
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/思路:这个复杂度限定还是挺有意思的。假设getkth(k)getkth(k)getkth(k)可以求出数组aaa和数组bbb后并之后的第kkk个数,设数组a、ba、ba、b的长度分别为n1、n2n_1、n_2n1、n2,设k1=(n1+n2+1)/2,k2=(n1+n2...原创 2020-03-16 01:18:27 · 287 阅读 · 0 评论 -
HDU 2044 递推
http://acm.hdu.edu.cn/showproblem.php?pid=2044有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。其中,蜂房的结构如下所示。Input输入数据的第一行是一个整数N,表示测试实例的个数,然后是N 行数据,每行包含两个整数a和b(0<a<b<50)。Output对于...原创 2019-01-22 18:46:53 · 146 阅读 · 0 评论 -
UVA 12627 递归
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4352题目复制不过来,我把主要部分拍过来。题目大意:求k时刻,从A行到B行的所有红色气球数。(闭区间[A,B])思路:感觉这道题很好的诠释了递归。首先我们观察一波图形...原创 2019-01-22 20:17:29 · 188 阅读 · 0 评论 -
洛谷 P1010 递归
https://www.luogu.org/problemnew/show/P1010题目描述任何一个正整数都可以用222的幂次方表示。例如137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=2^2+2+2^0(2^1用2表示),并且3=2+2^0所以最后13...原创 2019-02-15 16:46:47 · 336 阅读 · 0 评论 -
洛谷 P1908 逆序对 归并排序
https://www.luogu.org/problemnew/show/P1908题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就...原创 2019-02-15 17:14:09 · 349 阅读 · 0 评论 -
洛谷 P1464
https://www.luogu.org/problemnew/show/P1464题目描述对于一个递归函数w(a,b,c)w(a,b,c)w(a,b,c)如果a≤0 or b≤0 or c≤0就返回值1 如果a>20 or b>20 or c>20就返回w(20,20,20) 如果a<b并且b<c就返回w(a,b,c−1)+w(a,b−1,c−1)...原创 2019-02-10 19:10:29 · 391 阅读 · 0 评论 -
POJ 2255 二叉树遍历
http://poj.org/problem?id=2255Little Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital letters in the nodes.This is ...原创 2019-02-13 15:50:06 · 247 阅读 · 0 评论 -
HDU 5587 递推 规律
http://acm.hdu.edu.cn/showproblem.php?pid=5587Vicky is a magician who loves math. She has great power in copying and creating.One day she gets an array {1}。 After that, every day she copies all the...原创 2019-01-24 13:13:39 · 186 阅读 · 0 评论