递推与递归
嘻嘻嘻277
努力学习,每天运动,早睡早起。
NNU菜鸡一枚,正在为GSoC努力准备!
展开
-
【蓝桥杯练习--递归】费解的开关
费解的开关 按法与顺序无关 每个各自最多按一次 枚举第一行的操作 每一行开关的操作由上一行灯的亮灭唯一确定 枚举第一行的状态 利用位运算 从第二行开始由上一行灯的亮灭决定本行的开关操作,当要执行第h行时,前n-1行一定全亮,只要特判最后一行是否全亮即可 在做题时要注意数据范围!飞行员问题可以直接枚举216到225 定义偏移量 ...原创 2020-12-03 21:23:59 · 201 阅读 · 1 评论 -
【LeetCode之每日一题系列】226. 翻转二叉树
226. 翻转二叉树 直接使用递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: TreeNode* in原创 2020-09-16 19:29:24 · 88 阅读 · 0 评论 -
【LeetCode-204】1567. 乘积为正数的最长子数组长度
【中等】1567. 乘积为正数的最长子数组长度 递归是一种特殊的DP 思路1:(不推荐) 暴力:枚举所有的子数组,计算其结果是否为正。但是复杂度为n2,所以要进行优化 思路2:(推荐) 因为要求结果为正的最长数组的长度,所以不妨从末尾出发向前递推到符合条件的最长子数组 分情况讨论ai的正负,长度为以a[i-1]结尾的最长子数组 其中f(n)/g(n)表示以a[n]结尾的,结果为正/负的最长子数组的长度。所以f(n)/g(n)的值一定大于等于0,因为是长度。 可得如下表格: 第i个元素的大小(ai原创 2020-09-16 13:35:26 · 171 阅读 · 0 评论 -
【递推及递归】练习问题汇总
翻硬币原创 2020-09-16 12:36:47 · 139 阅读 · 0 评论 -
【递归与递推】翻硬币(简化版费解开关)
翻硬币 费解开关的简化版 有解的话 必然只有一组解 #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 110; int n; char start[N],aim[N]; void turn(int i) { if(start[i]=='*') start[i]='o'; else start[i]='*'; }原创 2020-09-14 19:46:26 · 150 阅读 · 0 评论