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

asp.net网站开发简介开发小程序用什么软件写代码

asp.net网站开发简介,开发小程序用什么软件写代码,nginx网站开发,网业安全防护如何关闭很久没有刷算法题了#xff0c;又荒废了#xff0c;习惯还得保持啊#xff0c;希望能坚持一天1~2道题。 文章目录 二叉树32. 将有序数组转换为二叉搜索树33. 把二叉搜索树转换为累加树 二叉树 32. 将有序数组转换为二叉搜索树 108. 将有序数组转换为二叉搜索树 思路…很久没有刷算法题了又荒废了习惯还得保持啊希望能坚持一天1~2道题。 文章目录 二叉树32. 将有序数组转换为二叉搜索树33. 把二叉搜索树转换为累加树 二叉树 32. 将有序数组转换为二叉搜索树 108. 将有序数组转换为二叉搜索树 思路 有序数组要生成普通二叉树只需要简单的一长溜就可以了。所以题目要求生成平衡二叉树。要平衡就要左右子树的节点数最多相差1自然而然从数组的中间划分为左右子树就显得很容易。 方法1 递归法 递归的思路很清晰对左右区间递归构造二叉搜索树即可。 class Solution { public:TreeNode* sortedArrayToBST(vectorint nums) {TreeNode *root Transfer(nums, 0, nums.size() - 1);return root;}private:TreeNode* Transfer(vectorint nums, int left, int right) {if (left right) return nullptr;int mid left ((right - left)1);TreeNode *root new TreeNode(nums[mid]);root-left Transfer(nums, left, mid - 1);root-right Transfer(nums, mid 1, right);return root;} };方法2迭代法 同递归法的思路只不过要利用队列存储当前处理区间的当前处理节点。 class Solution { public:TreeNode* sortedArrayToBST(vectorint nums) {if (nums.size() 0) return nullptr;TreeNode *root new TreeNode(0);queueTreeNode * nodeQue; // 栈顶是当前处理到的节点queueint leftQue; // 存当前处理区间的左边界queueint rightQue; // 存当前处理区间的有边界nodeQue.push(root); // 初始处理节点是根节点leftQue.push(0); // 初始左边界是 0rightQue.push(nums.size() - 1); // 初始右边界while (!nodeQue.empty()) {TreeNode *curNode nodeQue.front(); nodeQue.pop();int left leftQue.front(); leftQue.pop();int right rightQue.front(); rightQue.pop();int mid left ((right - left) 1);curNode-val nums[mid];// 先处理左区间if (left mid) {curNode-left new TreeNode(0);nodeQue.push(curNode-left);leftQue.push(left);rightQue.push(mid - 1);}// 再处理右区间if (right mid) {curNode-right new TreeNode(0);nodeQue.push(curNode-right);leftQue.push(mid 1);rightQue.push(right);}}return root;} };33. 把二叉搜索树转换为累加树 538. 把二叉搜索树转换为累加树 思路 二叉搜索树变成累加树题干说的听抽象的看不太懂观察样例可以看出根节点值是自身和右子树的累加和左子节点是自身和根节点新值的累加。其实就是得到后续遍历的结果再从左向右依次累加。 在遍历过程中处理需要记录一个 pre 值表示前一个节点的值方便做累加。 方法1递归法 class Solution { public:TreeNode* convertBST(TreeNode* root) {pre 0;Transfer(root);return root;}private:int pre 0;void Transfer(TreeNode* root) {if (root nullptr) return ;Transfer(root-right); // 右// 中root-val pre;pre root-val;Transfer(root-left); // 左} };方法2迭代法 典型的后续遍历模板 class Solution { public:TreeNode* convertBST(TreeNode* root) {Transfer(root);return root;}private:void Transfer(TreeNode* root) {int pre 0;stackTreeNode * stk;TreeNode *cur root;while (cur ! nullptr || !stk.empty()) {if (cur ! nullptr) { // 右stk.push(cur);cur cur-right;} else {// 中cur stk.top(); stk.pop();cur-val pre;pre cur-val;cur cur-left; // 左}}} };
http://www.sadfv.cn/news/273606/

相关文章:

  • 弹幕网站是什么技术做的开封建设教育协会网站
  • 济南新网站建设wordpress5.0.3
  • soap公司网站wdcp创建多个网站
  • 重庆网站建设夹夹虫什么是垂直型网站
  • 网站建设绩效考核表广州安全教育平台登录入口官网
  • 盐城seo网站优化软件大宗商品交易平台解决方案
  • iis默认网站删除西安专业房产网站建设
  • 档案信息网站建设网站地址格式
  • 简单做网站需要学什么wordpress导航页面模板下载地址
  • 网站制作的销售对象微信小程序开发文档
  • 怎样做访问外国网站才能不卡株洲外贸网站建设
  • 网站速度对seo的影响免费开通网站
  • 农业网站模板WordPress什么推广网站好
  • WordPress一键开启全站SSL北京做网站哪家强
  • 哪里有学习网站建设开封北京网站建设
  • 百度一下你就知道官网深圳专业seo外包
  • 站长之家查询的网址南京网站开发就业培训课程
  • 哪个网站做电子请帖好成都网站设计推荐
  • 邯郸手机网站建设服务贵州省省建设厅网站
  • 单页 网站 模板网页版梦幻西游金卡竞猜
  • 国外的响应式网站模板云匠网怎么接单
  • 好的网站建设湖南建设厅官方网站
  • wordpress无法下载更新seo与sem的区别
  • 建设企业网站哪个好黄骅市市长
  • 如何招聘软件网站开发人员114网站建设
  • 建设网站的HTML代码网站 商城 app 建设
  • 建设环境竣工验收网站四川省建设厅建造师官方网站
  • 怎么上网站wordpress文章名称背景
  • 论企业网站建设的好处的文献wordpress全站登陆可见
  • 企业网站建设管理及推广创意海报设计