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

建销售网站需要多少钱旧版优化大师

建销售网站需要多少钱,旧版优化大师,网站淘宝推广怎么做,想自己做个网站《递归、回溯、宽搜》--------基础知识 第一题: 题解思路: 总体就是在出队之前,将他的孩子入队 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/195610.html

相关文章:

  • 设计资源网站大推荐备案域名
  • 免费 wordpress优化设计方案
  • 邮箱注册过的网站查询抖音代运营大概多少钱一个月
  • 手机网站建设 如何获得更好的排名企点官网
  • 微信微网站建设平台精准粉丝引流推广
  • 保定网站建设公司排名餐饮营销方案100例
  • 厦门免费网站建设网页制作的基本步骤
  • 朋友要给我做网站百度广告竞价
  • 做兼职网站的项目初衷专业网络推广软件
  • 在中国做国外网站黑科技引流推广神器免费
  • 网站建设推广公司排名新媒体营销案例分析
  • java语言做网站开发seo岗位工资
  • 如何做网站网页旁边的留言框nba排名西部和东部
  • 男女做暖昩视频试看网站网站建设优化推广
  • wordpress z-blogseo免费课程
  • 如何保护网站域名seo关键词推广渠道
  • 长春网站建设wang北京网络推广公司wyhseo
  • 建设方案旅游局网站做博客的seo技巧
  • 衡水做企业网站的价格seo搜索优化培训
  • 做网站应该先从什么地方开始头条号权重查询
  • 纪检监察信访举报网站建设镇江百度推广
  • 做违法网站 服务器放在狗爹网站维护需要多长时间
  • 网站里面内外链接如何做单页网站制作教程
  • 企业网站的常见服务是什么杭州网站免费制作
  • 公司要做好网站怎样做国际新闻热点事件
  • 教学网站的设计网时代教育培训机构怎么样
  • 老会计手把手教做帐官方网站嘉兴seo计费管理
  • 网站优化建设安徽百度云网盘登录入口
  • sqlite做网站佛山seo网站排名
  • 在哪个网站做外快设计镇江百度公司