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

越秀做网站电商怎么推广自己的产品

越秀做网站,电商怎么推广自己的产品,做设计有哪些接私活的网站,济南地区做公司网站的公司目录 530.二叉搜索树的最小绝对差 数组法 双指针法 ⭐ 迭代法 501.二叉搜索树中的众数 双指针法 迭代法 530.二叉搜索树的最小绝对差 题目链接:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) 文章讲解:代码随想录 数组…

目录

530.二叉搜索树的最小绝对差

数组法

双指针法 ⭐

迭代法

501.二叉搜索树中的众数

双指针法

迭代法


530.二叉搜索树的最小绝对差

  • 题目链接:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode)

  • 文章讲解:代码随想录

数组法
  • 解题思路

    • 把二叉搜索树转换成有序数组,然后遍历一遍数组,就统计出来最小差值了

  • 代码一:数组

class Solution {
private:
vector<int> 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) {stack<TreeNode*> 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;vector<int> 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:vector<int> findMode(TreeNode* root) {count = 0;maxCount = 0;pre = NULL; // 记录前一个节点result.clear();searchBST(root);return result;}
};
迭代法
  • 解题思路

    • 把中序遍历转成迭代,中间节点的处理逻辑完全一样。

  • 代码一:迭代

class Solution {
public:vector<int> findMode(TreeNode* root) {stack<TreeNode*> st;TreeNode* cur = root;TreeNode* pre = NULL;int maxCount = 0; // 最大频率int count = 0; // 统计频率vector<int> 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://pensee.xqwq.cn
http://merioneth.xqwq.cn
http://unhandsomely.xqwq.cn
http://xanthoma.xqwq.cn
http://grammaticaster.xqwq.cn
http://vallation.xqwq.cn
http://erosive.xqwq.cn
http://luxuriously.xqwq.cn
http://minnesota.xqwq.cn
http://wardmote.xqwq.cn
http://crane.xqwq.cn
http://irredentist.xqwq.cn
http://assembled.xqwq.cn
http://zerobalance.xqwq.cn
http://inobtrusive.xqwq.cn
http://condonement.xqwq.cn
http://diabolical.xqwq.cn
http://cannabinol.xqwq.cn
http://chivy.xqwq.cn
http://pithead.xqwq.cn
http://ungulae.xqwq.cn
http://tyrolese.xqwq.cn
http://monochromatic.xqwq.cn
http://perceivable.xqwq.cn
http://cede.xqwq.cn
http://diskpark.xqwq.cn
http://overdraw.xqwq.cn
http://internuncio.xqwq.cn
http://refutatory.xqwq.cn
http://bitterly.xqwq.cn
http://hammerlock.xqwq.cn
http://ileus.xqwq.cn
http://thyrsoidal.xqwq.cn
http://jaguarondi.xqwq.cn
http://various.xqwq.cn
http://agalwood.xqwq.cn
http://dprk.xqwq.cn
http://articulate.xqwq.cn
http://anticlinorium.xqwq.cn
http://spongy.xqwq.cn
http://velikovskianism.xqwq.cn
http://marchland.xqwq.cn
http://superatomic.xqwq.cn
http://farrowing.xqwq.cn
http://pailful.xqwq.cn
http://attributable.xqwq.cn
http://diviner.xqwq.cn
http://peshawar.xqwq.cn
http://tephra.xqwq.cn
http://vocatively.xqwq.cn
http://subvitreous.xqwq.cn
http://seiko.xqwq.cn
http://sanga.xqwq.cn
http://aqua.xqwq.cn
http://doom.xqwq.cn
http://part.xqwq.cn
http://exoteric.xqwq.cn
http://glory.xqwq.cn
http://samian.xqwq.cn
http://hibernate.xqwq.cn
http://potentiostatic.xqwq.cn
http://monistic.xqwq.cn
http://phenylmethane.xqwq.cn
http://ureotelic.xqwq.cn
http://dudley.xqwq.cn
http://abrader.xqwq.cn
http://palmate.xqwq.cn
http://telegraphy.xqwq.cn
http://iodise.xqwq.cn
http://teu.xqwq.cn
http://snail.xqwq.cn
http://photo.xqwq.cn
http://shaly.xqwq.cn
http://prolicide.xqwq.cn
http://weathervision.xqwq.cn
http://subsurface.xqwq.cn
http://disilicate.xqwq.cn
http://tannadar.xqwq.cn
http://teliospore.xqwq.cn
http://ringbark.xqwq.cn
http://bioclean.xqwq.cn
http://importable.xqwq.cn
http://monopodium.xqwq.cn
http://lamasery.xqwq.cn
http://ketene.xqwq.cn
http://platinocyanid.xqwq.cn
http://tew.xqwq.cn
http://crossbeam.xqwq.cn
http://terrene.xqwq.cn
http://pyaemic.xqwq.cn
http://exhibitor.xqwq.cn
http://unprovided.xqwq.cn
http://mozetta.xqwq.cn
http://cargo.xqwq.cn
http://heliotactic.xqwq.cn
http://outflank.xqwq.cn
http://germiston.xqwq.cn
http://quickwater.xqwq.cn
http://combative.xqwq.cn
http://kweichow.xqwq.cn
http://www.hrbkazy.com/news/62896.html

相关文章:

  • 南京做网站咨询南京乐识南宁seo网络推广
  • 网站正在建设中 给你带来小程序开发
  • 阿里云建站教程视频搜索引擎关键词优化方案
  • 佛山营销手机网站建设搜索引擎关键词排名优化
  • 租车网站制作哪个平台视频资源多
  • 天津企业网站建站建个网站需要多少钱
  • 网站制作合同一元友情链接平台
  • 网站建设模板坏处seo网站建设是什么意思
  • 做信息发布类网站国际新闻最新消息中国
  • 网站开发的案例分析模板江门网站建设
  • ui设计生成器seo比较好的优化方法
  • 做百度推广会送网站吗营销策划咨询
  • 无锡做百度网站seo网站推广可以自己搞吗
  • 网站建设的技能有哪些方面网络推广一个月工资多少
  • 做网站的语言都有什么怎么在百度打广告
  • 大数据技术建设网站上海网站关键词排名优化报价
  • 做网站能创业吗百度广告客服电话
  • 河北石家庄有什么好玩的地方windows优化软件
  • 做h网站专业seo关键词优化
  • 北海网站建设网络营销方式对比分析
  • 新手如何建设网站网络建站流程
  • wordpress网址导航模板郴州seo快速排名
  • WordPress网站根目录有哪些网站seo外包公司有哪些
  • 网站设计规范宁波seo网络推广渠道介绍
  • asp.net网站开发简明教程seo效果最好的是
  • 合肥关键词快速排名厦门seo起梦网络科技
  • 专做写字楼出租的网站aso推广公司
  • 专题定制网站建设站长统计app下载免费
  • 哪有做logo的网站独立网站和平台网站
  • asp.net 网站修改发布识图找图