当前位置: 首页 > news >正文

LeetCode 热题 C++ 581. 最短无序连续子数组 617. 合并二叉树

581. 最短无序连续子数组

给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。

请你找出符合题意的 最短 子数组,并输出它的长度。

示例 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(vector<int>& nums) {int k=-1,h=-1;int mmax=INT_MIN;int mmin=INT_MAX;int n=nums.size();for(int i=0;i<n;i++){if(nums[i]<mmax)h=i;else mmax=nums[i];if(nums[n-i-1]>mmin)k=n-i-1;else mmin=nums[n-i-1];}if(h==-1)return 0;return h-k+1;}
};

617. 合并二叉树

给你两棵二叉树: root1root2

想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 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(p==nullptr&&q==nullptr)return;if(p==nullptr){p=q;}if(q!=nullptr)p->val=q->val+p->val;if(p->left&&q->left)dfs(p->left,q->left);else if(q->left)p->left=q->left;if(p->right&&q->right)dfs(p->right,q->right);else if(q->right)p->right=q->right;}TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {TreeNode* p=root1,*q=root2;if(p==nullptr)return q;if(q==nullptr)return p;dfs(p,q);return root1;}
};

http://www.lryc.cn/news/37042.html

相关文章:

  • 鉴源论坛 · 观模丨模型检查综述
  • Easy Deep Learning——池化层
  • TryHackMe-VulnNet: Active(ez 域渗透)
  • TencentOS Server 安装 PostgreSQL
  • 多线程的风险 --- 线程安全
  • Linux信号详解
  • JAVA使用POI操作EXCEL
  • 只做笔记有必要买apple pencil吗?苹果笔的代替笔推荐
  • Hive---sqoop安装教程及sqoop操作
  • 【C++】register 关键字
  • 剑指 Offer II 024. 反转链表
  • 从Linux内核中学习高级C语言宏技巧
  • 详解Python的装饰器
  • k8s-Pod域名学习总结
  • 0405习题总结-不定积分
  • QT 常用控件类型命名参考
  • MATLAB与图像处理的那点小事儿~
  • 第十四届蓝桥杯模拟赛(第三期)Java组个人题解
  • Go语言之条件判断循环语句(if-else、switch-case、for、goto、break、continue)
  • 深入理解AQS
  • JVM学习笔记十:执行引擎
  • 【2023-03-10】JS逆向之美团滑块
  • 全志V853芯片放开快启方案打印及在快起方式下配置isp led的方法
  • 大数据 | (一)Hadoop伪分布式安装
  • Django/Vue实现在线考试系统-06-开发环境搭建-Django安装
  • KaiwuDB 时序引擎数据存储内存对齐技术解读
  • IR 808 Alkyne,IR-808 alkyne,IR 808炔烃,近红外吲哚类花菁染料
  • elasticsearch
  • 并发编程---java锁
  • 品牌营销 | 学习如何最大限度地发挥品牌营销的作用