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

渭南做网站都有哪些下载百度极速版免费安装

渭南做网站都有哪些,下载百度极速版免费安装,纪检监察信息网站建设,wordpress 评论栏目录 530.二叉搜索树的最小绝对差 数组法 双指针法 ⭐ 迭代法 501.二叉搜索树中的众数 双指针法 迭代法 530.二叉搜索树的最小绝对差 题目链接#xff1a;530. 二叉搜索树的最小绝对差 - 力扣#xff08;LeetCode#xff09; 文章讲解#xff1a;代码随想录 数组…目录 530.二叉搜索树的最小绝对差 数组法 双指针法 ⭐ 迭代法 501.二叉搜索树中的众数 双指针法 迭代法 530.二叉搜索树的最小绝对差 题目链接530. 二叉搜索树的最小绝对差 - 力扣LeetCode 文章讲解代码随想录 数组法 解题思路 把二叉搜索树转换成有序数组然后遍历一遍数组就统计出来最小差值了 代码一数组 class Solution { private: vectorint vec; void traversal(TreeNode* root) {if (root NULL) return;traversal(root-left);vec.push_back(root-val); // 将二叉搜索树转换为有序数组traversal(root-right); } public:int getMinimumDifference(TreeNode* root) {vec.clear();traversal(root);if (vec.size() 2) return 0;int result INT_MAX;for (int i 1; i vec.size(); i) { // 统计有序数组的最小差值result min(result, vec[i] - vec[i-1]);}return result;} }; 双指针法 ⭐ 解题思路 用一个pre节点记录一下cur节点的前一个节点。在二叉搜素树中序遍历的过程中直接计算。 代码注意 设置函数无返回值只进行遍历 代码一双指针 class Solution { private: int result INT_MAX; TreeNode* pre NULL; void traversal(TreeNode* cur) {if (cur NULL) return;traversal(cur-left); // 左if (pre ! NULL){ // 中result min(result, cur-val - pre-val);}pre cur; // 记录前一个traversal(cur-right); // 右 } public:int getMinimumDifference(TreeNode* root) {traversal(root);return result;} }; 迭代法 解题思路 用栈模拟中序遍历的迭代法 代码一中序 class Solution { public:int getMinimumDifference(TreeNode* root) {stackTreeNode* st;TreeNode* cur root;TreeNode* pre NULL;int result INT_MAX;while (cur ! NULL || !st.empty()) {if (cur ! NULL) { // 指针来访问节点访问到最底层st.push(cur); // 将访问的节点放进栈cur cur-left; // 左} else {cur st.top();st.pop();if (pre ! NULL) { // 中result min(result, cur-val - pre-val);}pre cur;cur cur-right; // 右}}return result;} }; 501.二叉搜索树中的众数 题目链接leetcode.cn 文章讲解programmercarl.com 双指针法 解题思路 一个指针指向前一个节点这样每次cur当前节点才能和pre前一个节点作比较。而且初始化的时候pre NULL这样当pre为NULL时候我们就知道这是比较的第一个元素。 解题步骤 中序遍历 最大频率统计 存入众数结果频率count 等于 maxCount最大频率当然要把这个元素加入到结果集中以下代码为result数组 结果更新频率count 大于 maxCount的时候不仅要更新maxCount而且要清空结果集以下代码为result数组因为结果集之前的元素都失效了。 代码注意 if (pre ! nullptr pre-val cur-val) 代码一双指针 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) { // 第一个节点 // if (pre ! nullptr pre-val cur-val) {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();searchBST(root);return result;} }; 迭代法 解题思路 把中序遍历转成迭代中间节点的处理逻辑完全一样。 代码一迭代 class Solution { public:vectorint findMode(TreeNode* root) {stackTreeNode* st;TreeNode* cur root;TreeNode* pre NULL;int maxCount 0; // 最大频率int count 0; // 统计频率vectorint result;while (cur ! NULL || !st.empty()) {if (cur ! NULL) { // 指针来访问节点访问到最底层st.push(cur); // 将访问的节点放进栈cur cur-left; // 左} else {cur st.top();st.pop(); // 中if (pre NULL) { // 第一个节点count 1;} else if (pre-val cur-val) { // 与前一个节点数值相同count;} else { // 与前一个节点数值不同count 1;}if (count maxCount) { // 如果和最大值相同放进result中result.push_back(cur-val);}if (count maxCount) { // 如果计数大于最大值频率maxCount count; // 更新最大频率result.clear(); // 很关键的一步不要忘记清空result之前result里的元素都失效了result.push_back(cur-val);}pre cur;cur cur-right; // 右}}return result;} }; 说明基于代码随想录课程学习部分内容引用代码随想录文章
http://www.hkea.cn/news/14328988/

相关文章:

  • 建站工具介绍广东省建设工程执业中心网站
  • 做照片有那些网站微信小程序 编程
  • 邯郸做网站的地方网站建设招标文件
  • 网站添加 百度商桥苏州建设网官网
  • wix做的网站能扒下来网站修改解析怎么做
  • 快速做网站公司哪家好做网站需要了解哪些知识
  • 免备案空间网站备案桥东网站建设
  • 如何建立自己的网站免费网站建设包括哪些内容
  • 沙河高端网站建设北京工程造价信息网官网
  • 策划对于企业网站建设来说wordpress谷歌收录
  • 东莞网站优化排名网站wordpress上传中文图片不显示
  • 丽水品牌网站建设金蝶云企业云平台
  • 网站建设jsp淘宝联盟怎么做自已的网站
  • 临夏市建设局网站常用网站开发软件
  • 建设校园网站必要性网站备案 企业
  • 福州网络营销网站ppt模板免费素材
  • 有名的网站开发工具泰安招聘信息最新招聘2023
  • 查一下红之易道学做的什么网站网络活动策划方案
  • 美色商城 网站建设网站优化外包公司
  • 网站推广人员怎么算业绩基于html5的旅游网站的设计
  • php网站访问很慢鲜花网络营销推广方案
  • 企业网站的基本内容有哪些如何做微信商城网站建设
  • 怎样做网站文件验证wordpress请提供一个地址才能继续
  • 临沂网站制作费用上虞市住房和城乡建设局网站
  • 徐州发布网站房产网站建设哪家好
  • 网站模板编号wordpress企业手机主题
  • 黑帽seo怎么做网站排名2022适合小学生的简短新闻
  • 网站改版建设官方黄金网站软件app大全下载
  • 为什么要给大夫做网站金融网站建设方法
  • 建筑工程信息网站wordpress 增量备份