剑指offer题解合集——Week3day6

这篇具有很好参考价值的文章主要介绍了剑指offer题解合集——Week3day6。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

剑指offerWeek3

周六:栈的压入、弹出序列

题目链接:栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。
假设压入栈的所有数字均不相等。

例如序列 1,2,3,4,5
 是某栈的压入顺序,序列 4,5,3,2,1
 是该压栈序列对应的一个弹出序列,但 4,3,5,1,2
 就不可能是该压栈序列的弹出序列。

注意:若两个序列长度不等则视为并不是一个栈的压入、弹出序列。若两个序列都为空,则视为是一个栈的压入、弹出序列。

数据范围
序列长度 [0,1000]

样例
输入:[1,2,3,4,5]
      [4,5,3,2,1]

输出:true

AC代码

class Solution {
public:
    bool isPopOrder(vector<int> pushV,vector<int> popV) {
        if (pushV.size() != popV.size()) return false;
        int idx = 0;
        stack<int> stk;
        for (auto x : pushV)
        {
            stk.push(x);
            while (stk.size() && stk.top() == popV[idx])
            {
                idx ++ ;
                stk.pop();
            }
        }
        
        if (!stk.empty()) return false;
        return true;
    }
};

思路:

整体思路

模拟题

模拟的模板思路

当前可走的路径
- 路径1
- 路径2
...
- 路径n

可走路径的条件
- 条件1
- 条件2
...
- 条件n

对应本题:
当前可执行的操作(路径)
- 压栈
- 弹栈

压栈的条件:
- 栈为空的时候肯定可压
- 其他条件比较难想,先放着

弹栈的条件
- 当栈不空
	- 只要栈顶元素和输出顺序的数值相同时,即弹
	


因此:
每次都压栈一次,然后只要栈不空且栈顶元素和输出顺序的数值相同时,就弹栈

周六:不分行从上往下打印二叉树

题目链接:不分行从上往下打印二叉树

从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。

数据范围
树中节点的数量 [0,1000]
。

样例
输入如下图所示二叉树[8, 12, 2, null, null, 6, null, 4, null, null, null]
    8
   / \
  12  2
     /
    6
   /
  4

输出:[8, 12, 2, 6, 4]

AC代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> printFromTopToBottom(TreeNode* root) {
        vector<int> res;
        if (!root) return res;
        queue<TreeNode*> q;
        q.push(root);
        
        while (q.size())
        {
            auto t = q.front();
            q.pop();
            res.push_back(t->val);
            if (t->left) q.push(t->left);
            if (t->right) q.push(t->right);
        }
        
        return res;
    }
};

思路:

整体思路文章来源地址https://www.toymoban.com/news/detail-805932.html

宽搜模板题

模板:
- 起点入队
- while (q.size())
{
	- 队首出队
	- 判断队首可达点
	- 可达点入队
}

到了这里,关于剑指offer题解合集——Week3day6的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【剑指offer】学习计划day3

      目录 一. 前言  二.替换空格         a.题目          b.题解分析           c.AC代码 三. 左旋转字符串          a.题目         b.题解分析         c.AC代码   本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下链接: 剑指offer-学习计划htt

    2024年02月13日
    浏览(95)
  • 【剑指offer】学习计划day1

    目录 一. 前言  二. 用两个栈实现队列         a.题目          b.题解分析           c.AC代码   二. 包含min函数的栈          a.题目          b.题解分析         c.AC代码   本系列是针对Leetcode中剑指offer学习计划的记录与思路讲解。详情查看以下链接: 剑指offer-学

    2023年04月24日
    浏览(40)
  • 【剑指offer】学习计划day2

    目录 一. 前言  二.从尾到头打印链表         a.题目          b.题解分析           c.AC代码   三. 反转链表          a.题目          b.题解分析         c.AC代码  四. 复杂链表的复制          a.题目          b.题解分析          c.AC代码  本系列是针对Leetcod

    2024年02月05日
    浏览(47)
  • 《剑指Offer》笔记&题解&思路&技巧&优化 Java版本——新版leetcode_Part_3

    当你踏入计算机科学的大门,或许会感到一片新奇而陌生的领域,尤其是对于那些非科班出身的学子而言。作为一位非科班研二学生,我深知学习的道路可能会充满挑战,让我们愿意迎接这段充满可能性的旅程。 最近,我开始了学习 《剑指Offer》 和Java编程的探索之旅。这不

    2024年02月22日
    浏览(44)
  • 【深度学习Week3】ResNet+ResNeXt

    Ⅰ.视频学习 ResNet在2015年由微软实验室提出,该网络的亮点: 1.超深的网络结构(突破1000层) 简单堆叠卷积层和池化层,会导致 梯度消失 或 梯度爆炸 和 退化问题 ; ResNet使用深度残差学习框架来解决退化问题。 2.提出residual模块 3.使用Batch Normalization加速训练(丢弃dropou

    2024年02月15日
    浏览(44)
  • [wp]NewStarCTF 2023 WEEK3|WEB

    medium_sql Sqlmap一把梭 (部分能直接 flag\\\' 部分出现flag不完整 或者部分爆不到表 等官方wp) 在week1的基础上,多过滤了union。 验证存在布尔盲注: ?id=TMP0919\\\' And if(10,1,0)# ?id=TMP0919\\\' And if(01,1,0)# 发第一个,有回显,第二个,没回显,说明页面可以根据if判断的结果回显两种(真假)

    2024年02月08日
    浏览(32)
  • Blockchains & Distributed L week3 爱宝授课记录(1)

    现在我们的生活几乎离不开合同,往大说,工作是与公司签订的劳动合同,买房是与房产公司签订购房合同,买保险是与保险公司签订保险合同;往小了说,网购、定外卖、打车、买彩票都是与相关的服务提供公司签订了相应的合同。可以说, 有人的地方就用合约。 甚至我

    2024年01月18日
    浏览(32)
  • 【北邮国院大三下】Cybersecurity Law 网络安全法 Week3

    北邮国院大三电商在读,随课程进行整理知识点。仅整理PPT中相对重要的知识点,内容驳杂并不做期末突击复习用。个人认为相对不重要的细小的知识点不列在其中。如有错误请指出。转载请注明出处,祝您学习愉快。 编辑软件为Effie,如需要pdf/docx/effiesheet/markdown格式的文件

    2024年02月11日
    浏览(40)
  • 前端架构师-week3-Node项目如何支持ES Module

    目录 方案一: 通过 webpack 完成 ES Module 资源构建 通过 webpack target 属性支持 Node 内置库 webpack loader 配置 babel-loader 支持低版本 Node  方案二: 通过Node原生支持ES Module Node 支持 ES Module 的两种方法 总结     根目录下创建 webpack.config.js

    2024年02月06日
    浏览(33)
  • 力扣 [344、541、剑指offer 05.、151、剑指offer58-ll]

    双指针:自己的 双指针,左指针指向开头,右指针指向末尾。 交换两个左右指针。 左右指针向中间移动。 时间复杂度:O(n); 空间复杂度:O(1); 实现代码: 分类讨论:自己的 分类讨论: 如果剩余字符少于k个,则将剩余字符全部反转。 如果剩余字符大于或等于k个,则反

    2024年02月15日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包