搜索引擎有哪些网站沈阳网站建设本地化技术服务

news/2025/9/22 16:30:23/文章来源:
搜索引擎有哪些网站,沈阳网站建设本地化技术服务,my8777网域名查询,wordpress三道杠菜单二叉树 打算先来了解二叉树基础#xff0c;都是简单题#xff0c;目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归#xff0c;比较简单 /*** Definition for a binary tree node.* struct TreeNode {* …二叉树 打算先来了解二叉树基础都是简单题目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归比较简单 /*** 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:int maxDepth(TreeNode* root) {if(root nullptr)return 0;return max(maxDepth(root-left), maxDepth(root-right))1;} };方法二、广度搜索 利用queue来存储每一层的节点每层次循环是当前queue的长度用一个数来记录一般是2的次方然后再将新的数放置queue末尾。 class Solution { public:int maxDepth(TreeNode* root) {if(rootnullptr)return 0;queueTreeNode* Q;Q.push(root);int depth 0;while(!Q.empty()){int szQ.size();while(sz0){TreeNode* node Q.front();Q.pop();if(node-left)Q.push(node-left);if(node-right)Q.push(node-right);sz-1;}depth1;}return depth;} };2、相同的树 相同的树 方法一、前序遍历比较 这是自己写的思路是确定可以用递归这个是深度搜索 然后先判断节点存在再判断是否正确 /*** 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:bool isSameTree(TreeNode* p, TreeNode* q) {bool atrue,btrue;if(pnullptrqnullptr)return true;else if(p!nullptrqnullptr)return false;else if(pnullptrq!nullptr)return false;else{if(p-val!q-val)return false;aisSameTree(p-left,q-left);bisSameTree(p-right,q-right);}if(afalse||bfalse)return false;else return true;} };方法二、广度搜索 来自官方题解中的一种有点复杂。 class Solution { public: // 检查两棵二叉树是否相同 bool isSameTree(TreeNode* p, TreeNode* q) { // 如果两棵树都为空返回 true if (p nullptr q nullptr) { return true; } // 如果一棵树为空而另一棵树不为空返回 false else if (p nullptr || q nullptr) { return false; } // 创建两个队列用于广度优先搜索BFS queueTreeNode* queue1, queue2; queue1.push(p); // 将第一个树的根节点入队 queue2.push(q); // 将第二个树的根节点入队 // 当两个队列都不为空时继续比较 while (!queue1.empty() !queue2.empty()) { // 取出两个队列的前端节点进行比较 auto node1 queue1.front(); queue1.pop(); auto node2 queue2.front(); queue2.pop(); // 比较两个节点的值 if (node1-val ! node2-val) { return false; // 值不相同则树不相同 } // 获取当前节点的左右子节点 auto left1 node1-left, right1 node1-right; auto left2 node2-left, right2 node2-right; // 检查左右子节点是否存在不一致 if ((left1 nullptr) ^ (left2 nullptr)) { return false; // 只有一棵树有左子节点 } if ((right1 nullptr) ^ (right2 nullptr)) { return false; // 只有一棵树有右子节点 } // 如果左右子节点存在则将其加入队列中 if (left1 ! nullptr) { queue1.push(left1); // 将第一个树的左子节点添加到队列 } if (right1 ! nullptr) { queue1.push(right1); // 将第一个树的右子节点添加到队列 } if (left2 ! nullptr) { queue2.push(left2); // 将第二个树的左子节点添加到队列 } if (right2 ! nullptr) { queue2.push(right2); // 将第二个树的右子节点添加到队列 } } // 返回两个队列是否都为空即两棵树的结构是否相同 return queue1.empty() queue2.empty(); } };3、翻转二叉树 翻转二叉树 方法一、 用递归找到最下方的左右子树直接更换节点而不是值 /*** 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:TreeNode* invertTree(TreeNode* root) {if(rootnullptr){return nullptr;}TreeNode *leftinvertTree(root-left);TreeNode *rightinvertTree(root-right);root-leftright;root-rightleft;return root;} };4、对称二叉树 101.对称二叉树 方法一、广度匹配 也就是迭代求解下面是我自己写的复杂的代码因为本能觉得可以把每一层存储为一个vector然后再综合比较。但是实现起来略显复杂 /*** 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:bool isSymmetric(TreeNode* root) {queueTreeNode* tree_level;vectorint num_level;vectorint num_level_re;int level1;if(root-leftnullptrroot-rightnullptr)return true;else if(root-left!nullptrroot-right!nullptr){level1;}else return false;tree_level.push(root-left);num_level.push_back(root-left-val);tree_level.push(root-right);num_level.push_back(root-right-val);while(tree_level.size()!0){num_level_renum_level;reverse(num_level_re.begin(),num_level_re.end());for(int i0;inum_level.size();i){if(num_level[i]num_level_re[i])continue;else return false;}num_level.clear();num_level_re.clear();// 把每层都节点和元素加入int level1 tree_level.size();while(level10){TreeNode* root_now;root_now tree_level.front();tree_level.pop();if(root_now-left!nullptr){tree_level.push(root_now-left);num_level.push_back(root_now-left-val);}else num_level.push_back(-1);if(root_now-right!nullptr){tree_level.push(root_now-right);num_level.push_back(root_now-right-val);}else num_level.push_back(-1);level1--;}// 判断每层不能为奇数if(tree_level.size()%2!0)return false; level;}return true;} };方法二、精简迭代法 其思路是特地写一个辅助函数可以同时输入左右子树这样更加方便做迭代 class Solution { public:bool check(TreeNode *u, TreeNode *v) {queue TreeNode* q;q.push(u); q.push(v);while (!q.empty()) {u q.front(); q.pop();v q.front(); q.pop();if (!u !v) continue;if ((!u || !v) || (u-val ! v-val)) return false;q.push(u-left); q.push(v-right);q.push(u-right); q.push(v-left);}return true;}bool isSymmetric(TreeNode* root) {return check(root, root);} }; 方法三、递归法 比较难想到下面是解释 也需要辅助函数 然后最左的和最右的分别组成对对比 class Solution { public:// 辅助函数检查两个子树是否对称bool check(TreeNode *leftNode, TreeNode *rightNode) {// 情况 1两个节点都为空if (leftNode nullptr rightNode nullptr) {return true; // 空节点是对称的}// 情况 2其中一个节点为空另一个不为空if (leftNode nullptr || rightNode nullptr) {return false; // 不对称}// 情况 3两个节点的值不相等if (leftNode-val ! rightNode-val) {return false; // 不对称}// 递归检查// 1. 左子树的左节点和右子树的右节点是否对称// 2. 左子树的右节点和右子树的左节点是否对称bool isOuterSymetric check(leftNode-left, rightNode-right); // 检查外层bool isInnerSymetric check(leftNode-right, rightNode-left); // 检查内层// 只有外层和内层都对称整个树才对称return isOuterSymetric isInnerSymetric;}// 主函数判断二叉树是否对称bool isSymmetric(TreeNode* root) {// 如果根节点为空直接返回 true空树是对称的if (root nullptr) {return true;}// 检查左子树和右子树是否对称return check(root-left, root-right);} };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站前台的网址公众号怎么开通商城

绕孔轴旋转的可无限旋转枪头以及送丝机是ETR堆焊系统的核心在传动米亏的帮助下,焊接电流、保护气、焊枪冷却专职和电气控制信号进行着不间断的工作。然而,如同所有复杂设备,该系统在使用过程中也可能遇到故障。因此,建议与子锐机器…

世界网站制作网站建设找金手指排名

对于ftp工具,你了解多少?其实一般人也接触不到这种软件。ftp工具主要是针对从事网站管理的工作人员比较有利的一款工具。可以帮助他们快速的解决工作中的问题。方便、简单、快捷又明了的解决问题。那ftp工具有哪些呢?接下来给大家推荐四款好用…

简述建设电子商务网站步骤写软文怎么接单子

目录 今日良言:关关难过关关过,步步难行步步行 一、单例模式 1.饿汉模式 2.懒汉模式 二、工厂模式 今日良言:关关难过关关过,步步难行步步行 一、单例模式 首先来解释一下,什么是单例模式。 单例模式也就是单个…

搭建自己的博客网站做网站推广书范法吗

思路&#xff1a;将以桥为分界的所有连通分支进行缩点&#xff0c;得到一颗树&#xff0c;求出树的直径。再用树上的点减去直径&#xff0c;再减一 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #incl…

学校微网站模板工信部网站黑名单

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像文本检索技术。此技术把自然语言处理和图像处理进行了融合。 参考 2024年&#xff08;第12届&#xff09;“泰迪杯”数据挖掘挑战赛 图像特征提取&#xff08;VGG和Resnet特征提取卷积过程详解&…

番禺网站建设公司有哪些天津网约车

本文通过一个例子来介绍利用maven来构建一个多模块的jave项目。开发工具&#xff1a;intellij idea。 一、项目结构 multi-module-project是主工程&#xff0c;里面包含两个模块&#xff08;Module&#xff09;&#xff1a; web-app是应用层&#xff0c;用于界面展示&#xff…

承德建设企业网站国外著名的网站设计公司

Spring Boot 是由 Pivotal 团队提供的全新框架&#xff0c;其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。我这里会分享一些学习Spring Boot的方法和干货&#xff0c;包括…

网站建设的快乐学编程的好处

随着信息技术与制造业的深度协调&#xff0c;作为企业发展的趋势&#xff0c;大中型制造企业需要拥抱信息化建设。通过运用信息技术和数字化运营&#xff0c;大中型制造企业的生产、设计、经营、管理、后续服务等都实现自动化、智能化。大中型制造企业信息化建设解决方案&#…

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池

ProcessPoolExecutor VS ThreadPoolExecutor 进程池对比线程池 示例一: I/O 场景——10 个网页并发下载 + 实时进度 结果 多线程: 100%|██████████| 10/10 [00:07<00:00, 1.41it/s] 【多线程】I/O 并发…

深入解析MS12-020关键漏洞CVE-2012-0002:远程桌面协议的安全风险与缓解方案

本文详细分析了微软远程桌面协议(RDP)中的高危漏洞CVE-2012-0002,该漏洞允许未经认证的远程代码执行,影响所有Windows版本。文章提供了启用网络级认证(NLA)的临时缓解方案,并讨论了终端服务网关和RemoteFX场景的风险…

模板网站可以自己买空间吗吗企业官网策划

2022年第十一届数学建模国际赛小美赛 D题 野生动物贸易是否应长期禁止 原题再现&#xff1a; 野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头&#xff0c;食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后&#xff0c;中国最高立法机构永久性地加强了野…

课程网站建设方案提高seo排名

随着金九银十逐渐进入尾声&#xff0c;还在观望机会的朋友们已经开始焦躁&#xff1a;“为什么我投的简历还没有回音&#xff1f;要不要趁现在裸辞好好找工作&#xff1f;” “金九银十”作为人们常说的传统“升职加薪”的黄金季节&#xff0c;也是许多人跳槽的理想时机。然而…

电商网站规划论文快速搭建网站前端

UISlide 的不同效果展现&#xff1a;运行代码 本文转自懒得安分博客园博客&#xff0c;原文链接&#xff1a;XXXXXXXX&#xff0c;如需转载请自行联系原作者

高端定制网站开发设计建站流程登封市城乡建设路网站

1 简介 1.1 横向联邦学习 横向联邦学习也称为按样本划分的联邦学习&#xff0c;主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景&#xff0c;例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体&#xff0c;所以他们的客户交集非常小&a…

网站老域名跳转到新域名阿里巴巴招聘官网

上一讲主要介绍了看板方法以及如何使用看板方法来解决软件研发过程中出现的团队过载、工作不均、任务延期等问题。通过学习前面几个课时介绍的知识&#xff0c;你的团队开始源源不断地交付用户价值。用户对交付的功能非常满意&#xff0c;但等到系统上线后经常出现服务不可用的…

美食网站 原型 html 下载网站咨询弹窗是怎么做的

前言: 爬虫哪家强,当然是python 我是属于啥语言都用,都懂点,不精通,实际工作中能能够顶上就可以。去年写的抓取bing每日的壁纸&#xff0c;保存到本地&#xff0c;并上传到阿里云oss&#xff0c;如果只是本地壁纸切换&#xff0c;存下来就行&#xff0c;一直想做个壁纸站点&…

网站怎么做扫码微信支付接口代理网址怎么用

之前了解了&#xff1a; 创建Django项目 数据库 模板 表格提交 admin管理页面 上面的功能模块允许我们做出一个具有互动性的站点&#xff0c;但无法验证用户的身份。我们这次了解用户验证部分。通过用户验证&#xff0c;我们可以根据用户的身份&#xff0c;提供不同的服务。 …

宁阳移动网站制作免费做背景调查的网站

内核生命周期uboot 打印完 Starting kernel . . .&#xff0c;就完成了自己的使命&#xff0c;控制权便交给了 kernel 的第一条指令&#xff0c;也就是下面这个函数init/main.casmlinkage __visible void __init start_kernel(void){...rest_init();}start_kernel 相当于内核的…

鸿蒙项目实战(九):get请求参数的处理

get请求将键值对数据拼接到url后面,并且进行编码处理(编码空格(转为%20)和中文字符等非保留字符)static async get<T>(url: string, params?: HashMap<string,object>): Promise<T> {if (params…