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

网站建设单位有哪些方面手机版网站建设合同范本

网站建设单位有哪些方面,手机版网站建设合同范本,硬件开发文档,电子商务有限公司简介二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };递归二分查找 题目描述 写出二分查找的递归算法。初…二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };递归二分查找 题目描述 写出二分查找的递归算法。初始调用时left 为1right 为 n. 解题代码 bool recurBS(vectorint nums, int target, int left, int right) {if (left right) return false;int mid (left right) / 2;if (nums[mid] target) return true;else if (nums[mid] target) {return recurBS(nums, target, left, mid - 1);}else {return recurBS(nums, target, mid 1, right);} }优化顺序查找 题目描述 线性表中各结点的检索概率不等时可用如下策略提高顺序检索的效率若找到指定的结点则将该结点和其前驱节点若存在交换使得经常被检索的结点尽量位于表的前端。试设计在顺序结构和链式结构的线性表上实现上述策略的顺序检索算法。 解题代码 顺序表 bool optimisedSS(vectorint nums, int target) {for (int i 0; i nums.size(); i) {if (nums[i] target) {if (i 0) {swap(nums[i - 1], nums[i]);}return true;}}return false; }链表 bool optimisedSS(ListNode* head, int target) {if (head nullptr) return false;ListNode* dummy new ListNode(-1, head); // 哨兵结点if (dummy-next-val target) return true;while (dummy-next-next ! nullptr) {if (dummy-next-next-val target) {ListNode* pre dummy;ListNode* node1 dummy-next;ListNode* node2 dummy-next-next;pre-next node2;node1-next node2-next;node2-next node1;return true;}dummy dummy-next;}return false; }判定二叉搜索树 题目描述 试编写一个算法判断给定的二叉树是否是二叉搜索树。 解题代码 bool dfs(TreeNode* root, int preVal) {if (root nullptr) return true;if (!dfs(root-left, preVal) || root-val preVal) {return false;}preVal root-val;return dfs(root-right, preVal); }bool isBST(TreeNode* root) {int lastVal INT32_MIN;return dfs(root, lastVal); }计算某结点层次 题目描述 设计一个算法求出指定结点在给定二叉排序树中的层次。 解题代码 int dfs(TreeNode* root, TreeNode* node, int depth) {if (root nullptr) return 0;if (root-val node-val) {return depth;}else if (root-val node-val) {return dfs(root-right, node, depth 1);}else {return dfs(root-left, node, depth 1);} }int calNodeDepth(TreeNode* root, TreeNode* node) {return dfs(root, node, 1); }判定平衡二叉树 题目描述 利用二叉树遍历的遍历的思想编写一个判断二叉树是否是平衡二叉树的算法。 解题代码 O(n^2) int calDepth(TreeNode* root) {if (root nullptr) return 0;return 1 max(calDepth(root-left), calDepth(root-right)); }bool isBalanced(TreeNode* root) {if (root nullptr) return true;int lDepth calDepth(root-left);int rDepth calDepth(root-right);return abs(lDepth - rDepth) 1 isBalanced(root-left) isBalanced(root-right); }在每次递归判断左右子树是否平衡时需要重新计算其高度因此引入了大量不必要的计算。而如果某棵树的子树之一已经是非平衡树那么这棵树一定是非平衡树根据该性质可将对平衡的判断改为自底向上进行。以下为自底向上判断平衡的方式可将时间复杂度优化至 O(n). O(n) int calDepth(TreeNode* root) {if (root nullptr) return 0;int lDepth calDepth(root-left);int rDepth calDepth(root-right);if (lDepth -1 || rDepth -1 || abs(lDepth - rDepth) 2) {return -1;}return 1 max(lDepth, rDepth); }bool isBalanced(TreeNode* root) {return calDepth(root) 0; }二叉搜索树最大和最小结点 题目描述 设计一个算法求出给定二叉搜索树中最小和最大的关键字。 解题代码 int calMaxVal(TreeNode* root) {if (root-right nullptr) return root-val;return calMaxVal(root-right); }int calMinVal(TreeNode* root) {if (root-left nullptr) return root-val;return calMinVal(root-left); }pairint, int calMaxMin(TreeNode* root) {int minVal root-left nullptr ? root-val : calMinVal(root-left);int maxVal root-right nullptr ? root-val : calMaxVal(root-right);return make_pair(minVal, maxVal); }二叉搜索树值不小于 k 的元素 题目描述 设计一个算法从大到小输出二叉搜索树中所有值不小于 k 的元素。 解题代码 void printNotSmallerK(TreeNode* root, int k) {if (root nullptr) return;printNotSmallerK(root-right, k);if (root-val k) {cout root-val ;}else return;printNotSmallerK(root-left, k); }查找第k小的元素 题目描述 编写一个递归算法在一棵有 n 个结点的随机建立起来的二叉搜索树上查找第 k 1 k n小的元素并返回指向该结点的指针要求算法的平均时间复杂度为 O(logn)。二叉搜索树中的每个结点除 data, lchild, rchild 等数据成员外增加一个 count 成员保存以该结点为根的子树上的结点个数。 解题代码 TreeNode* findKthNode(TreeNode* root, int k) {if (root nullptr) return nullptr;TreeNode* left findKthNode(root-left, k);if (left ! nullptr) return left;if (--k 0) return root;return findKthNode(root-right, k); }
http://www.w-s-a.com/news/379392/

相关文章:

  • 焦作做网站推广天津网络关键词排名
  • siteserver cms网站访问量挂机宝可以做网站吗
  • 普宁网站建设公司网络商城设计
  • wordpress主题 外贸网站wordpress安装后输入帐号登不进去
  • 陕西省西安市建设局网站永登网站设计与建设
  • 广东网站设计招工.免费咨询贷款
  • 做试题网站在线做c 题的网站
  • 青岛发现51例阳性南京专业网站优化公司
  • 南昌建站如何上wordpress
  • 洛阳网站建设优惠公司建筑企业上市公司有哪些
  • 营销型网站建设营销型网站建设手机网站设计需要学什么
  • 在线视频网站 一级做爰片南通网站建设找哪家
  • 网站优化文章东莞专业网站建设价钱
  • 哈尔滨网页设计网站模板泰兴建设局网站
  • 响应式网站设计公司报纸做垂直门户网站
  • 陕西旭泽建设有限公司网站企业网站建设软件需求分析
  • 上海公司网站建设方案中企动力西安分公司
  • dedecms网站后台怎样才能上百度
  • 云互联的网站名字亚马逊雨林生物
  • 电商网站功能企查查企业信息查询网
  • 特色网站建设中国住房和城乡建设局官网
  • 长春市住房城乡建设厅网站做白酒网站
  • 自己的网站怎么做的成品免费ppt网站
  • 番禺区网站建设哪里有泰安公司
  • 网站制作详细过程网站开发最强工具
  • 孟村县做网站长春城投建设投资有限公司网站
  • 国家重大建设项目库网站wordpress安装 var
  • 供求信息网站建设报价网站制作 苏州
  • 动漫建模代做网站百度一下wordpress nginx 固定链接
  • 广州网站开发网络公司网站建设的书