![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程刷题
yylxiaobai
这个作者很懒,什么都没留下…
展开
-
力扣:递增子序列
题目:给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。**解题思路:**需要求出数组中的子序列,满足递增,长度至少为2,由于需要列出所有可能,可以很快想到用递归,DFS,来做题。当下,亟需解决的是给出dfs函数,dfs函数需要注意的点有:截止条件,遍历候选节点,筛选出符合条件的候选节点。在这里插入代码片...原创 2020-08-25 22:53:09 · 192 阅读 · 0 评论 -
力扣:二叉树层次遍历
题目:给定一颗二叉树,返回自底向上的层次遍历例如:给定二叉树[3,9,20,null,null,15,7]返回其自底向上的层次遍历为:[[15,7],[9,20],[3]]思路:树的层次遍历由于输出要自底向上输出,所以可以使用一个栈作为中间的结果缓冲,再依次弹出即可自底向上输出结果。class Solution{ vector<vector<int>> levelOrderBottom(TreeNode* root) { vector<vector原创 2020-08-23 19:01:02 · 201 阅读 · 0 评论 -
力扣:数组的度
题目:给定一个非空且只包含非负数的整数数组,数组的度定义为数组中任意一个元素出现频率的最大值。找到与给定数组同样度大小的最短连续子数组,返回其长度。原创 2020-08-19 19:00:30 · 206 阅读 · 0 评论 -
力扣:平衡二叉树判断
题目:给定一个二叉树,判断其是否是一个高度平衡的二叉树。思路:递归,从根节点出发,若此根节点左右子树高度差小于等于1,则此子树为平衡二叉树,根节点的左右子树又可能有左右子树,用同样的方法依次递推判断,直到遇到没有左右子树的根节点。首先,先写一个高度判断的函数,等到再判断是否是平衡树的时候直接调用此函数即可。class Solution {public: int height(TreeNode* root)//判断树的高度函数 { if (root == NULL)原创 2020-08-17 10:34:47 · 171 阅读 · 0 评论 -
动态规划解决连续子数组的最大和问题
求连续子数组的最大和题目:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。解题思路:这是一道用动态规划处理的典型问题。主要突破点就是找出dp状态转移方程。要得到dp[i],就要知道上一个状态dp[i-1];如果dp[i-1]小于等于0,则对于dp[i]为负贡献,这个状态下,dp[i]就等于当前的数nums[i];如果dp[i-1]大于0,则对于dp[i]有正贡献,这个状态下,dp[i]就可以选择加入当前数,也可以选择不加,取两者的原创 2020-08-10 22:22:59 · 367 阅读 · 0 评论 -
力扣:复原IP地址
题目:将只包含数字的字符串,复原并返回所有可能的IP地址 (每个整数都在’0~255’之间)例如:输入:“25525511135”输出:“255.255.11.135”,“255.255.111.35”思路:递归由于需要给出所有可能的IP地址,所以每一段需要所有可能都需要进行搜索,最终输出满足要求的IP地址。因为IP地址一般有4个字段,所以可以分成四段进行搜索,在段内搜索满足条件的可能情况,依次迭代递归到下一段。函数可以设计成dfs(id,idstart),id={0,1,2,3},s[ids原创 2020-08-09 15:54:28 · 254 阅读 · 0 评论