如何把网站建设成营销型网站,网页游戏排行榜2023,太原建设设计公司网站,厦门网站建设门户581. 最短无序连续子数组
给你一个整数数组 nums #xff0c;你需要找出一个 连续子数组 #xff0c;如果对这个子数组进行升序排序#xff0c;那么整个数组都会变为升序排序。
请你找出符合题意的 最短 子数组#xff0c;并输出它的长度。
示例 1#xff1a;
输入你需要找出一个 连续子数组 如果对这个子数组进行升序排序那么整个数组都会变为升序排序。
请你找出符合题意的 最短 子数组并输出它的长度。
示例 1
输入nums [2,6,4,8,10,9,15]
输出5
解释你只需要对 [6, 4, 8, 10, 9] 进行升序排序那么整个表都会变为升序排序。示例 2
输入nums [1,2,3,4]
输出0示例 3
输入nums [1]
输出0提示
1 nums.length 104-105 nums[i] 105
思路
直接看代码吧
代码
class Solution {
public:int findUnsortedSubarray(vectorint nums) {int k-1,h-1;int mmaxINT_MIN;int mminINT_MAX;int nnums.size();for(int i0;in;i){if(nums[i]mmax)hi;else mmaxnums[i];if(nums[n-i-1]mmin)kn-i-1;else mminnums[n-i-1];}if(h-1)return 0;return h-k1;}
};
617. 合并二叉树
给你两棵二叉树 root1 和 root2 。
想象一下当你将其中一棵覆盖到另一棵之上时两棵树上的一些节点将会重叠而另一些不会。你需要将这两棵树合并成一棵新二叉树。合并的规则是如果两个节点重叠那么将这两个节点的值相加作为合并后节点的新值否则不为 null 的节点将直接作为新二叉树的节点。
返回合并后的二叉树。
注意: 合并过程必须从两个树的根节点开始。
示例 1 输入root1 [1,3,2,5], root2 [2,1,3,null,4,null,7]
输出[3,4,5,5,4,null,7]示例 2
输入root1 [1], root2 [1,2]
输出[2,2]提示
两棵树中的节点数目在范围 [0, 2000] 内-104 Node.val 104
思路
遍历二叉树并且修改就好了
代码
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:void dfs(TreeNode* p,TreeNode* q){if(pnullptrqnullptr)return;if(pnullptr){pq;}if(q!nullptr)p-valq-valp-val;if(p-leftq-left)dfs(p-left,q-left);else if(q-left)p-leftq-left;if(p-rightq-right)dfs(p-right,q-right);else if(q-right)p-rightq-right;}TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {TreeNode* proot1,*qroot2;if(pnullptr)return q;if(qnullptr)return p;dfs(p,q);return root1;}
};