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

注册网站安全吗wordpress图片批量上传插件下载

注册网站安全吗,wordpress图片批量上传插件下载,西宁市网站建设价格,专门做珠宝的网站《递归、回溯、宽搜》--------基础知识 第一题: 题解思路: 总体就是在出队之前,将他的孩子入队 1、先入根节点; 2、再取对头节点; 3、再出队,再将孩子节点再次入队; 4、如此循环反复&#xff1…

《递归、回溯、宽搜》--------基础知识

第一题:

题解思路: 总体就是在出队之前,将他的孩子入队

1、先入根节点;

2、再取对头节点;

3、再出队,再将孩子节点再次入队;

4、如此循环反复;

题解代码:

/*
// Definition for a Node.
class Node {
public:int val;vector<Node*> children;Node() {}Node(int _val) {val = _val;}Node(int _val, vector<Node*> _children) {val = _val;children = _children;}
};
*/
class Solution {
public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if (root == nullptr)return ret;queue<Node*> q;q.push(root);while (q.size()) {// 出队的次数int size = q.size();vector<int> tmp;// 出队操作for (int i = 0; i < size; i++) {// 取队顶;Node* t = q.front();// 插入到数组中;tmp.push_back(t->val);// 出队q.pop();// 每出一个就要将他的孩子入队for (auto& child : t->children) {if (child != nullptr)q.push(child);}}// 走到这就表示一层走完了;ret.push_back(tmp);}return ret;}
};

第二题:

题解思路:

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:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> ret;if (root == nullptr)return ret;queue<TreeNode*> q;bool flag = true;q.push(root);while (q.size()) {// 出队的次数int size = q.size();vector<int> tmp;// 出队的操作;for (int i = 0; i < size; i++) {auto t = q.front();q.pop();tmp.push_back(t->val);// 将该节点的孩子入队if (t->left)q.push(t->left);if (t->right)q.push(t->right);}// 一层走完// 奇数层就正序,偶数层就逆序if (flag) {ret.push_back(tmp);flag = false;} else {reverse(tmp.begin(), tmp.end());ret.push_back(tmp);flag = true;}}return ret;}
};

第三题:

题解思路:

1、给每个节点主观的编码(可以是1序,也可以是0序);

2、用数组模拟队列;

3、用每层的第一个和最后一个节点的编码相减得到每层的长度;

4、更新每层的长度ret = max(ret,newret);

5、最后遍历完后,就得最长的长度是多少了;

值得注意点细节:

1、用pair<node* ,unsigned int>组合;

2、不能用int 而应该用unsigned int,因为数据量太大可能会造成Int 的溢出;相减会得到一个负数,所以应该采用无符整形,尽管溢出,相减还是会得到一个正确的值

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:int widthOfBinaryTree(TreeNode* root) {// 数组模拟的队列vector<pair<TreeNode*, unsigned int>> q;unsigned int ret = 0;q.push_back({root, 1});// 进行遍历每层的操作;while (q.size()) {// 提取每层的auto& [x1, y1] = q[0];auto& [x2, y2] = q.back();// 长度ret = max(ret, y2 - y1 + 1);// 让下一层进队vector<pair<TreeNode*, unsigned int>> tmp;for (auto& [x, y] : q) {if (x->left)tmp.push_back({x->left, y * 2});if (x->right)tmp.push_back({x->right, y * 2 + 1});}q = tmp;}return ret;}
};

http://www.dtcms.com/wzjs/595600.html

相关文章:

  • 陕西省城乡建设厅官方网站百度官网登录
  • 慈溪公司做网站深圳市宝安区松岗街道邮政编码
  • 贵州国龙翔建设有限公司网站wordpress设置邮件发送
  • 深圳网站建设的服务怎么样上海搬家公司收费价目表2021
  • 建设电商网站的电商网站开发的背景及意义
  • 军事网站模板代理注册公司需要什么资料
  • 上海企业招聘信息发布平台南宁seo做法价格
  • 成安企业做网站推广自己怎么建个优惠网站
  • 自己做的网站安全吗seo优化工具有哪些
  • 网站创建器百度开放云平台
  • 拼团手机网站开发拉销智能模板建站系统
  • seo综合查询网站源码免费发布网站建设的平台
  • win7 iis 添加网站施工企业上市公司有哪些
  • 北京设计公司网站国内十大网站建设
  • 企业做网站的优势施工企业信用综合评价系统
  • php网站的首页自动化培训网站建设
  • 网站建设费用计入管理费用的哪个科目网站需求分析的主要内容
  • 网站建立计划书家校互动平台
  • 缝纫网站做洗衣机罩装修软件排行榜前十名
  • 潍坊专业网站建设哪家便宜凡科建站官网登录入口网页版
  • 爱站网查询成都开网站
  • 岳阳新网网站建设有限公司php学校网站建设
  • 广州市网站建设在哪里wordpress广告插件中文
  • 中德合作项目竞价网站同时做优化可以吗
  • 网站开发公司基本业务流程图有什么做服装的网站
  • 网站开发便宜增城头条新闻
  • 企业网站seo贵不贵做的网站怎才能被别人访问到
  • 网站系统环境的搭建wordpress 获取 图片说明
  • 网络网站维护费怎么做会计分录山东网上注册公司流程
  • 移动网站开发课程设计扶贫网站建设优势