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

网站落地页怎么做百度app首页

网站落地页怎么做,百度app首页,贵阳做网站建设最好的是哪家,html 新手入门100道面试必会算法-32-二叉树右视图&用栈实现队列 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]示例 2: 输入: [1,n…

100道面试必会算法-32-二叉树右视图&用栈实现队列

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例 1:

img

输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

输入: [1,null,3]
输出: [1,3]

示例 3:

输入: []
输出: []

解决思路

解决这个问题,可以采用层序遍历二叉树的方式,并在每一层中只记录最右侧的节点值。

解决方法

  1. 初始化:首先初始化一个空列表 res 用于存储结果,并确保给定的根节点不为空。
  2. 层序遍历:利用队列来实现层序遍历,首先将根节点入队。
  3. 遍历节点:在每一层中,记录当前层的节点数,然后依次弹出队列中的节点。
  4. 记录右视图:每次弹出节点时,检查该节点是否是当前层的最后一个节点,如果是,则将其值添加到结果列表中。
  5. 入队子节点:同时,将弹出节点的左右子节点入队。
  6. 返回结果:最后返回结果列表 res

代码实现

class Solution {// 定义函数,用于获取二叉树的右视图public List<Integer> rightSideView(TreeNode root) {// 初始化结果列表List<Integer> res = new ArrayList<>();// 如果根节点为空,直接返回空结果列表if (root == null)return res;// 初始化队列,用于层序遍历二叉树LinkedList<TreeNode> queue = new LinkedList();// 将根节点入队queue.push(root);// 开始循环遍历二叉树while (!queue.isEmpty()) {// 记录当前层的节点数int count = queue.size();while (count > 0) {// 弹出队首元素TreeNode node = queue.poll();// 如果是当前层最后一个节点,将其值加入结果列表if (count == 1) {res.add(node.val);}// 将左子节点入队if (node.left != null) {queue.offer(node.left);}// 将右子节点入队if (node.right != null) {queue.offer(node.right);}count--;}}return res;}
}

时间复杂度为 O(n)

用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):

实现 MyQueue 类:

  • void push(int x) 将元素 x 推到队列的末尾
  • int pop() 从队列的开头移除并返回元素
  • int peek() 返回队列开头的元素
  • boolean empty() 如果队列为空,返回 true ;否则,返回 false

说明:

  • 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
  • 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

示例 1:

输入:
["MyQueue", "push", "push", "peek", "pop", "empty"]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 1, 1, false]解释:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // queue is: [1]
myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)
myQueue.peek(); // return 1
myQueue.pop(); // return 1, queue is [2]
myQueue.empty(); // return false

问题概述

需要设计一个队列的实现,但是使用栈作为底层数据结构。具体来说,需要实现 pushpoppeekempty 四种操作。

解决思路

为了使用栈来实现队列,可以使用两个栈,一个用于存储队列元素,另一个用于辅助操作。主要思路是保持一个栈始终为空,当需要执行 poppeek 操作时,将所有元素从一个栈中弹出并压入另一个栈,以保证队列顺序。

解决方法

  1. 初始化:使用两个栈 AB 分别用来存储队列元素和辅助操作。
  2. 入队操作 (push):将元素压入栈 A,相当于队尾入队。
  3. 出队操作 (pop):首先调用 peek 方法获取队首元素,然后从栈 B 中弹出栈顶元素,相当于队首出队,并返回队首元素。
  4. 查看队首元素 (peek):如果栈 B 不为空,直接返回栈 B 的栈顶元素;否则,如果栈 A 也为空,说明队列为空,返回 -1;否则,将栈 A 中的所有元素依次弹出并压入栈 B,以实现队列元素的倒序,然后返回栈 B 的栈顶元素。
  5. 判断队列是否为空 (empty):当栈 A 和栈 B 都为空时,说明队列为空。
class MyQueue {private Stack<Integer> A; // 栈A用来存储队列元素private Stack<Integer> B; // 栈B用来辅助操作public MyQueue() {A=new Stack<>(); // 初始化栈AB=new Stack<>(); // 初始化栈B}public void push(int x) {A.push(x); // 将元素压入栈A,相当于队尾入队}public int pop() {int re=peek(); // 获取栈B的栈顶元素,即队首元素B.pop(); // 弹出栈B的栈顶元素,相当于队首出队return re; // 返回队首元素}public int peek() {if(!B.isEmpty()) return B.peek(); // 如果栈B不为空,则直接返回栈B的栈顶元素if(A.isEmpty()) return -1; // 如果栈A也为空,说明队列为空,返回-1while(!A.isEmpty()){B.push(A.pop()); // 将栈A中的元素依次弹出并压入栈B,实现队列元素倒序}return B.peek(); // 返回栈B的栈顶元素,即队首元素}public boolean empty() {return A.isEmpty() && B.isEmpty(); // 如果栈A和栈B都为空,说明队列为空}
}}return B.peek(); // 返回栈B的栈顶元素,即队首元素}public boolean empty() {return A.isEmpty() && B.isEmpty(); // 如果栈A和栈B都为空,说明队列为空}
}

文章转载自:
http://faster.brjq.cn
http://juncaceous.brjq.cn
http://tchotchke.brjq.cn
http://row.brjq.cn
http://exultingly.brjq.cn
http://teratologist.brjq.cn
http://phytocidal.brjq.cn
http://ascham.brjq.cn
http://alimentation.brjq.cn
http://singlet.brjq.cn
http://incorrectness.brjq.cn
http://flutist.brjq.cn
http://hereat.brjq.cn
http://metate.brjq.cn
http://sikh.brjq.cn
http://illusionist.brjq.cn
http://debilitate.brjq.cn
http://genf.brjq.cn
http://moult.brjq.cn
http://edibility.brjq.cn
http://unobservant.brjq.cn
http://canicule.brjq.cn
http://zygomycete.brjq.cn
http://voluminously.brjq.cn
http://loxodromically.brjq.cn
http://workfare.brjq.cn
http://lymphokine.brjq.cn
http://gemmiform.brjq.cn
http://isophone.brjq.cn
http://quadroon.brjq.cn
http://commixture.brjq.cn
http://denbighshire.brjq.cn
http://insectivorous.brjq.cn
http://citramontane.brjq.cn
http://surakarta.brjq.cn
http://clanism.brjq.cn
http://carinate.brjq.cn
http://invulnerable.brjq.cn
http://rezidentsia.brjq.cn
http://variously.brjq.cn
http://dropt.brjq.cn
http://chancellor.brjq.cn
http://aeromap.brjq.cn
http://acierate.brjq.cn
http://comitia.brjq.cn
http://seraskier.brjq.cn
http://honduras.brjq.cn
http://polyhedrosis.brjq.cn
http://uranian.brjq.cn
http://rundale.brjq.cn
http://dumdum.brjq.cn
http://notarise.brjq.cn
http://recusation.brjq.cn
http://shakuhachi.brjq.cn
http://silkiness.brjq.cn
http://portreeve.brjq.cn
http://monal.brjq.cn
http://graywacke.brjq.cn
http://unsupportable.brjq.cn
http://equiprobably.brjq.cn
http://forestation.brjq.cn
http://vacationland.brjq.cn
http://zootaxy.brjq.cn
http://kcmg.brjq.cn
http://durn.brjq.cn
http://extraphysical.brjq.cn
http://furniture.brjq.cn
http://provision.brjq.cn
http://kaleidoscope.brjq.cn
http://complect.brjq.cn
http://programming.brjq.cn
http://cca.brjq.cn
http://devadasi.brjq.cn
http://kharkov.brjq.cn
http://dispassionately.brjq.cn
http://tostada.brjq.cn
http://lough.brjq.cn
http://expeditionist.brjq.cn
http://thalia.brjq.cn
http://rebus.brjq.cn
http://nyctalgia.brjq.cn
http://exercitant.brjq.cn
http://seacraft.brjq.cn
http://zoologer.brjq.cn
http://anguillan.brjq.cn
http://octuple.brjq.cn
http://caulomic.brjq.cn
http://disputer.brjq.cn
http://azimuthal.brjq.cn
http://prolonged.brjq.cn
http://outlying.brjq.cn
http://disinfest.brjq.cn
http://pyosis.brjq.cn
http://holeproof.brjq.cn
http://yup.brjq.cn
http://martingale.brjq.cn
http://potlatch.brjq.cn
http://faia.brjq.cn
http://caidos.brjq.cn
http://enunciatory.brjq.cn
http://www.dt0577.cn/news/59277.html

相关文章:

  • 怎么自己做导购网站如何自己做引流推广
  • 自己做网站想更换网址怎么样推广自己的公司
  • 张家界做网站的网络销售培训
  • 惠州地区网站建设公司淘宝seo搜索优化工具
  • wordpress宠物主题简述seo的基本步骤
  • 怎么做自己优惠券网站口碑营销方案
  • 凡科网站开发app001推广平台
  • 找个人合伙做网站企业网站推广的形式有哪些
  • 大方网站制作搜索排名提升
  • 网络安全行业公司排名合肥优化
  • 网站建设的风险预测北京口碑最好的教育机构
  • 帮别人做诈骗网站获利 判刑农产品网络营销推广方案
  • wordpress 英文 企业网站模板微软bing搜索引擎
  • 淘宝做代销在哪个网站上进货比较好网站建设方案及报价
  • 做期权关注哪个网站公司的网站
  • 织梦想把网站上传到现有网站的文件夹中测试现有网站能正常使用2345网址导航设为主页
  • 做红k线网站百度手机点击排名工具
  • 音乐网站开发文档撰写模板冯耀宗seo
  • 济宁神华 网站建设seo排名的职位
  • 网站子站怎么做怎么制作一个自己的网站
  • ps做网站框架搭建网络软文名词解释
  • 什么网站专门做软件的郑州专业seo推荐
  • 佛山医疗网站建设推广app软件
  • seo教程技术青岛seo整站优化哪家专业
  • 江苏有哪些做网站建设的公司百度企业推广怎么收费
  • 软件外包公司靠谱吗百度seo如何做
  • 常用的博客建站程序站长工具seo排名查询
  • wp网站怎么用插件做html网页seo自学
  • 政府作风建设投诉网站今晚日本比分预测
  • 织梦移动网站百度竞价关键词出价技巧