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

什么网站做一手项目好珠海做公司网站

什么网站做一手项目好,珠海做公司网站,优化措施最新回应,上海的网站设计公司题目 501. 二叉搜索树中的众数 简单 相关标签 树 深度优先搜索 二叉搜索树 二叉树 给你一个含重复值的二叉搜索树#xff08;BST#xff09;的根节点 root #xff0c;找出并返回 BST 中的所有 众数#xff08;即#xff0c;出现频率最高的元素#xff09;。 …题目 501. 二叉搜索树中的众数 简单 相关标签 树   深度优先搜索   二叉搜索树   二叉树 给你一个含重复值的二叉搜索树BST的根节点 root 找出并返回 BST 中的所有 众数即出现频率最高的元素。 如果树中有不止一个众数可以按 任意顺序 返回。 假定 BST 满足如下定义 结点左子树中所含节点的值 小于等于 当前节点的值结点右子树中所含节点的值 大于等于 当前节点的值左子树和右子树都是二叉搜索树 示例 1 输入root [1,null,2,2] 输出[2]示例 2 输入root [0] 输出[0]提示 树中节点的数目在范围 [1, 104] 内-105 Node.val 105 进阶你可以不使用额外的空间吗假设由递归产生的隐式调用栈的开销不被计算在内 思路和解题方法一暴力 定义一个私有函数searchBST用于前序遍历二叉搜索树并统计每个元素的频率。函数参数包括当前节点指针cur和存储元素频率的unordered_mapmap。在searchBST函数中如果当前节点为空则直接返回否则对当前节点的值进行统计将当前节点的值作为map的键并将对应的值加1表示该元素出现的频率。递归调用searchBST函数传入当前节点的左子节点和map再传入当前节点的右子节点和map实现前序遍历。定义一个静态成员函数cmp用于比较两个pair类型的元素按照频率降序排列。在排序时使用此比较函数。在findMode函数中首先创建一个空的unordered_map类型的map用于存储元素及其频率。如果输入的根节点为空直接返回空的结果数组。调用searchBST函数传入根节点和map统计二叉搜索树中每个元素的频率。将map转化为vector类型并使用sort函数对vector进行排序排序方式为按照元素的频率降序排列。创建一个空的结果数组result将排序后的第一个元素的键也就是出现频率最高的元素添加到result中。遍历排序后的vector从第二个元素开始如果其频率和第一个元素的频率相同则将其键添加到result中否则结束遍历。返回结果数组result。 复杂度 时间复杂度: O(n logn) 时间复杂度 前序遍历二叉树的时间复杂度为 O(n)其中 n 是二叉树的节点数。构建哈希表的过程中对每个节点进行插入操作的平均时间复杂度为 O(1)。因此构建哈希表的时间复杂度也是 O(n)。对哈希表进行排序的时间复杂度为 O(nlogn)。综上所述算法的时间复杂度为 O(n) O(n) O(nlogn) O(nlogn)。 空间复杂度 O(n) 空间复杂度 使用了一个哈希表来存储元素及其频率哈希表的空间复杂度是 O(n)。将哈希表转换成了向量空间复杂度仍然是 O(n)。保存结果的向量最多可能存储所有节点的值因此空间复杂度也是 O(n)。综上所述算法的空间复杂度为 O(n)。 c 代码 class Solution { private:// 前序遍历二叉搜索树统计每个元素的频率void searchBST(TreeNode* cur, unordered_mapint, int map) {if (cur NULL) return ;map[cur-val]; // 统计元素频率searchBST(cur-left, map); // 遍历左子树searchBST(cur-right, map); // 遍历右子树return ;}// 静态成员函数用于比较两个pair类型元素按照频率降序排列static bool cmp(const pairint, int a, const pairint, int b) {return a.second b.second;} public:vectorint findMode(TreeNode* root) {unordered_mapint, int map; // 存储元素及其频率的mapkey为元素value为频率vectorint result; // 结果数组if (root NULL) return result; // 根节点为空直接返回空结果数组searchBST(root, map); // 统计二叉搜索树中每个元素的频率vectorpairint, int vec(map.begin(), map.end()); // 将map转换为vectorsort(vec.begin(), vec.end(), cmp); // 按照频率降序排列result.push_back(vec[0].first); // 将频率最高的元素添加到结果数组中for (int i 1; i vec.size(); i) {// 遍历排序后的vector如果元素频率与第一个元素的频率相同则添加到结果数组中否则结束遍历if (vec[i].second vec[0].second) result.push_back(vec[i].first);else break;}return result; // 返回结果数组} };思路和解题方法二双指针 加 时时优化 使用了一个全局变量 maxCount 来记录最大频率使用 count 来统计当前节点值出现的频率。同时引入了一个 pre 变量来记录前一个访问的节点以便比较当前节点与前一个节点的值是否相同。函数 searchBST 是进行中序遍历的辅助函数通过递归遍历左子树、处理当前节点、递归遍历右子树的顺序进行搜索。在处理当前节点时首先判断当前节点值与前一个节点值是否相同若相同则将 count 增加 1否则将 count 重置为 1。然后根据 count 的大小与 maxCount 进行比较并更新 maxCount 和 result。如果 count 与 maxCount 相同说明当前节点值出现的频率与最大频率相同将其加入 result 中。如果 count 大于 maxCount则更新 maxCount 并清空 result将当前节点值放入 result 中。在 findMode 函数中初始化各个变量然后调用 searchBST 开始搜索并返回结果数组 result。 复杂度 时间复杂度: O(n) 时间复杂度是O(n)其中n是二叉搜索树中的节点数。因为我们需要遍历所有的节点来统计它们的频率。 空间复杂度 O(1) 不利用额外空间 c 代码 class Solution { private:int maxCount 0; // 最大频率int count 0; // 统计频率TreeNode* pre NULL; // 前一个节点vectorint result; // 存储结果的向量// 中序遍历二叉搜索树搜索出现频率最高的节点值void searchBST(TreeNode* cur) {if (cur NULL) return; // 递归终止条件当前节点为空searchBST(cur-left); // 左子树// 统计频率if (pre NULL) { // 第一个节点count 1;} else if (pre-val cur-val) { // 与前一个节点数值相同count;} else { // 与前一个节点数值不同count 1;}pre cur; // 更新上一个节点if (count maxCount) { // 如果和最大频率相同将节点值放进result中result.push_back(cur-val);}if (count maxCount) { // 如果频率大于最大频率maxCount count; // 更新最大频率result.clear(); // 清空result之前result中的元素都无效了result.push_back(cur-val);}searchBST(cur-right); // 右子树return ;}public:vectorint findMode(TreeNode* root) {count 0;maxCount 0;pre NULL; // 初始化前一个节点为空result.clear(); // 清空result向量searchBST(root); // 调用中序遍历函数搜索出现频率最高的节点值return result; // 返回结果向量} };觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
文章转载自:
http://www.morning.kqkmx.cn.gov.cn.kqkmx.cn
http://www.morning.xmxbm.cn.gov.cn.xmxbm.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.glbnc.cn.gov.cn.glbnc.cn
http://www.morning.lstmq.cn.gov.cn.lstmq.cn
http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn
http://www.morning.hhqjf.cn.gov.cn.hhqjf.cn
http://www.morning.czrcf.cn.gov.cn.czrcf.cn
http://www.morning.wklrz.cn.gov.cn.wklrz.cn
http://www.morning.wngpq.cn.gov.cn.wngpq.cn
http://www.morning.mfmrg.cn.gov.cn.mfmrg.cn
http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn
http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn
http://www.morning.ffydh.cn.gov.cn.ffydh.cn
http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn
http://www.morning.mdpcz.cn.gov.cn.mdpcz.cn
http://www.morning.xqgh.cn.gov.cn.xqgh.cn
http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn
http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn
http://www.morning.yixingshengya.com.gov.cn.yixingshengya.com
http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn
http://www.morning.xqcst.cn.gov.cn.xqcst.cn
http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com
http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn
http://www.morning.dnbkz.cn.gov.cn.dnbkz.cn
http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn
http://www.morning.mrbmc.cn.gov.cn.mrbmc.cn
http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn
http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn
http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn
http://www.morning.ktyww.cn.gov.cn.ktyww.cn
http://www.morning.ckntb.cn.gov.cn.ckntb.cn
http://www.morning.nzlsm.cn.gov.cn.nzlsm.cn
http://www.morning.clybn.cn.gov.cn.clybn.cn
http://www.morning.dbqg.cn.gov.cn.dbqg.cn
http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn
http://www.morning.rcqyk.cn.gov.cn.rcqyk.cn
http://www.morning.kfyjh.cn.gov.cn.kfyjh.cn
http://www.morning.jprrh.cn.gov.cn.jprrh.cn
http://www.morning.c7491.cn.gov.cn.c7491.cn
http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn
http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn
http://www.morning.mdmc.cn.gov.cn.mdmc.cn
http://www.morning.xxwhz.cn.gov.cn.xxwhz.cn
http://www.morning.5-73.com.gov.cn.5-73.com
http://www.morning.xzkgp.cn.gov.cn.xzkgp.cn
http://www.morning.lbywt.cn.gov.cn.lbywt.cn
http://www.morning.qyllw.cn.gov.cn.qyllw.cn
http://www.morning.kqpsj.cn.gov.cn.kqpsj.cn
http://www.morning.xrftt.cn.gov.cn.xrftt.cn
http://www.morning.fqqcn.cn.gov.cn.fqqcn.cn
http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn
http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn
http://www.morning.fhykt.cn.gov.cn.fhykt.cn
http://www.morning.dybth.cn.gov.cn.dybth.cn
http://www.morning.bytgy.com.gov.cn.bytgy.com
http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn
http://www.morning.srbsr.cn.gov.cn.srbsr.cn
http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn
http://www.morning.rjmb.cn.gov.cn.rjmb.cn
http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn
http://www.morning.hxxwq.cn.gov.cn.hxxwq.cn
http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn
http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn
http://www.morning.jcbjy.cn.gov.cn.jcbjy.cn
http://www.morning.qgjgsds.com.cn.gov.cn.qgjgsds.com.cn
http://www.morning.rnjgh.cn.gov.cn.rnjgh.cn
http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn
http://www.morning.wmmtl.cn.gov.cn.wmmtl.cn
http://www.morning.bxnrx.cn.gov.cn.bxnrx.cn
http://www.morning.qymqh.cn.gov.cn.qymqh.cn
http://www.morning.daxifa.com.gov.cn.daxifa.com
http://www.morning.msbmp.cn.gov.cn.msbmp.cn
http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn
http://www.morning.jrqw.cn.gov.cn.jrqw.cn
http://www.morning.mmclj.cn.gov.cn.mmclj.cn
http://www.morning.mkhwx.cn.gov.cn.mkhwx.cn
http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn
http://www.morning.kjjbz.cn.gov.cn.kjjbz.cn
http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn
http://www.tj-hxxt.cn/news/265932.html

相关文章:

  • 网站推广软件哪个最实惠中国建设银行深圳招聘信息网站
  • 网站建设流程心得网页app制作入门教程
  • 朝阳公园网站建设石英手表网站
  • 网站开发实施计划与安排建筑模板是怎么做成的
  • wordpress建站发文教程目前我们的网站正在建设中
  • 怎么给公司注册网站设计师网站十大网站
  • 农业网站怎么做wordpress只有三个主题
  • 莆田网站开发网站建设直通车关键词设置
  • 合肥网站建设方案策划WordPress调用npr电台
  • 关于制作网站的方案网络营销外包公司哪家最好
  • 法国新增确诊病例如何给自己的公司网站做优化
  • wordpress导航栏下拉菜单公司网站优化推广
  • 郑州网站建设公司电话海报设计说明
  • 百度信息流推广是什么意思企业网站优化官网
  • 槐荫区网站建设大连专业网站建设
  • 郑州百度网站推广塘沽网站制作公司
  • 如何做网站公证百度热词搜索指数
  • 海南那个网站可以做车年检哈尔滨建站模板
  • 天津 建设执业资格注册中心网站制作小程序的方法如何自己制作小程序
  • 关于网站开发的网站移动知识库管理系统
  • 哪里建网站最好商城网站框架
  • pos网站源码收费网站模板
  • 福建做网站的公司百度的宣传视频广告
  • 找效果图的网站哪个好域名备案了 怎么建设网站
  • dedecms免费网站模板郑州网站建设 app开发
  • 网站建设用户画像例子网站建设须知
  • 网站建设与维护管理实训报告贵州百度竞价网页设计
  • 网站转应用智慧团建官网登录口手机版
  • 建设银行 产品管理中心网站工装效果图网站
  • 做网站哪里微官网怎么开通使用