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

外贸物流流程seo搜索引擎优化是什么

外贸物流流程,seo搜索引擎优化是什么,无聊网站建设,小程序免费制作平台有哪些目录 1. 验证栈序列 1.1 题目解析 1.2 解法 1.3 代码实现 2. N叉树的层序遍历 2.1 题目解析 2.2 解法 2.3 代码实现 1. 验证栈序列 https://leetcode.cn/problems/validate-stack-sequences/description/ 给定 pushed 和 popped 两个序列#xff0c;每个序列中的 值…目录 1. 验证栈序列 1.1 题目解析 1.2 解法 1.3 代码实现 2. N叉树的层序遍历 2.1 题目解析 2.2 解法 2.3 代码实现 1. 验证栈序列 https://leetcode.cn/problems/validate-stack-sequences/description/ 给定 pushed 和 popped 两个序列每个序列中的 值都不重复只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时返回 true否则返回 false 。 示例 1 输入pushed [1,2,3,4,5], popped [4,5,3,2,1] 输出true 解释我们可以按以下顺序执行 push(1), push(2), push(3), push(4), pop() - 4, push(5), pop() - 5, pop() - 3, pop() - 2, pop() - 1示例 2 输入pushed [1,2,3,4,5], popped [4,3,5,1,2] 输出false 解释1 不能在 2 之前弹出。 提示 1 pushed.length 10000 pushed[i] 1000pushed 的所有元素 互不相同popped.length pushed.lengthpopped 是 pushed 的一个排列 1.1 题目解析 题目本质 判断一对 pushed / popped 序列能否由同一“从空开始”的栈操作产生。抽象成按 pushed 顺序“尽量入栈”每当栈顶等于 popped 的下一个元素就立刻出栈最终是否能把 popped 全部匹配并清空栈。 常规解法 最直观就是模拟栈顺序把 pushed[i] 入栈每次入栈后若栈顶恰好等于 popped[j]就持续出栈并前进 j。 问题分析 该题无需复杂数据结构也不需要回溯。因为所有元素互不相同且 popped 是 pushed 的一个排列所以“能弹就弹”的贪心策略不会错若某个 popped[j] 迟迟在栈顶见不到那就永远见不到后续只会把更多不同元素压在它上面。 思路转折 要想高效 → 直接一次线性扫描 栈模拟即可 扫过 pushed 时入栈 每次入栈后尽可能匹配 popped 进行弹栈 扫描结束后栈应为空或 j n。 时间 O(n)空间 O(n)是本题最优做法。 1.2 解法 算法思想 维护指针 i 遍历 pushed、指针 j 指向 popped 的下一个待弹元素循环中把 pushed[i] 入栈然后在 stack.peek() popped[j] 时不断 pop() 与 j最终栈空则返回 true。 i初始化空栈i 0, j 0。 ii外层循环当 i pushed.length push(pushed[i])i 内层循环当 stack.peek() popped[j] pop()j。 iii全部处理后返回 stack.isEmpty()或判断 j popped.length。 易错点 等于就弹且要连续弹入栈后别忘了用 while 连续匹配 popped[j]直到不等为止。 边界与空栈判断写 peek() 前要保证栈非空示例代码里通过条件顺序或 isEmpty() 规避。 指针前进时机i 只在入栈后前进j 只在成功弹出后前进。 1.3 代码实现 class Solution {public boolean validateStackSequences(int[] pushed, int[] popped) {// 可用 DequeInteger stack new ArrayDeque(); 更高效java.util.StackInteger stack new java.util.Stack();int i 0, j 0, n pushed.length;while (i n) {stack.push(pushed[i]); // 先按 pushed 顺序入栈// 只要栈顶等于 popped[j]就连续弹出并推进 jwhile (!stack.isEmpty() stack.peek() popped[j]) {stack.pop();j;}}// 若能完全匹配栈应被清空等价于 j nreturn stack.isEmpty();} }复杂度分析 时间复杂度O(n)。每个元素最多入栈一次、出栈一次。 空间复杂度O(n)。最坏情况下栈会临时存放尚未匹配的元素。 2. N叉树的层序遍历 https://leetcode.cn/problems/n-ary-tree-level-order-traversal/description/ 给定一个 N 叉树返回其节点值的层序遍历。即从左到右逐层遍历。 树的序列化输入是用层序遍历每组子节点都由 null 值分隔参见示例。 示例 1 输入root [1,null,3,2,4,null,5,6] 输出[[1],[3,2,4],[5,6]]示例 2 输入root [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14] 输出[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]] 提示 树的高度不会超过 1000树的节点总数在 [0, 104] 之间 2.1 题目解析 题目本质 在一棵 N 叉树上做层序遍历Level Order Traversal从根开始逐层、从左到右收集结点值形成二维列表。 常规解法 用队列做 BFS。根结点先入队每一轮“锁定当前层的队列大小 sz”弹出 sz 个结点把它们的值放到当前层列表并把它们的子结点若非空全部入队层结束后把该层列表放进答案。。 问题分析 本题没有回溯或复杂剪枝关键只是正确分层与子结点判空。 题目上限节点数 ≤ 1e4、树高 ≤ 1000。BFS 时间 O(n)、空间 O(w)w 为最大宽度都可接受。 DFS 也能做层序记录 depth但极深树形递归层数会接近 1000BFS 更稳妥。 思路转折 要想写得又对又稳 → 一次线性 BFS 锁层大小 入队根 循环直到队空先记 sz q.size()弹 sz 次组成一层 遍历子结点时判空避免 NullPointerException 与把 null 入队。 2.2 解法 算法思想 维护队列 q。 1若 root null 直接返回空结果 2root 入队 3当队列非空令 sz q.size()循环 sz 次弹出结点 node把 node.val 记入本层若 node.children ! null则将非空子结点依次入队 4把本层列表加入答案。重复直至队空。 步骤 i处理空树返回 []。 ii初始化QueueNode q new ArrayDeque(); q.offer(root); iii外层循环while (!q.isEmpty()) int sz q.size(); ListInteger level new ArrayList(sz); 重复 sz 次 Node node q.poll(); level.add(node.val); 若 node.children ! null遍历每个子结点 chif (ch ! null) q.offer(ch); result.add(level); iiii返回 result。 易错点 children 判空node.children 可能为 null遍历前要判空。 不要入队 null遍历子结点时 if (ch ! null) 再 offer。 锁层大小务必先取 sz q.size()再弹 sz 次防止跨层污染。 API 使用队列用 offer/poll/peek不要用 pop那是栈/双端队列当栈用的。 实现类选择Queue 不能 new Queue()用 ArrayDeque相对 LinkedList 更高效、足够。 空树返回值不要返回 null而是空列表。 泛型简写new ArrayList()、new ArrayDeque() 更简洁。 2.3 代码实现 /* // Definition for a Node. class Node {public int val;public ListNode children;public Node() {}public Node(int _val) { val _val; }public Node(int _val, ListNode _children) {val _val; children _children;} }; */import java.util.*;class Solution {public ListListInteger levelOrder(Node root) {ListListInteger result new ArrayList();if (root null) return result; // 空树QueueNode q new ArrayDeque();q.offer(root);while (!q.isEmpty()) {int sz q.size(); // 锁定本层大小ListInteger level new ArrayList(sz);for (int i 0; i sz; i) {Node node q.poll(); // 出队当前层结点level.add(node.val);if (node.children ! null) { // 判空再遍历子结点for (Node ch : node.children) {if (ch ! null) q.offer(ch);}}}result.add(level); // 收录本层}return result;} }复杂度分析 时间复杂度O(n)每个结点至多入队/出队一次。 空间复杂度O(w)其中 w 为树在某一层的最大结点数最坏 O(n)。
http://www.zqtcl.cn/news/811009/

相关文章:

  • 厦门网站推广找谁wordpress的模板目录在哪里
  • 做网站的维护成本wordpress 密码更改
  • 企业网站建设流程概述长春网站推广排名
  • 网站导航设计牙科 网站建设方案
  • 手机微信网站开发教程企业网站的制作成本
  • 做电商网站的流程网站架构搭建
  • 可以下载新闻视频的网站重庆seo
  • 网站内容页设计网站建设实验分析
  • 网站建设的软硬件环境凡科精选app
  • 网站开发过滤器作用信息港怎么发布信息
  • 网站服务器组建百度seo引流怎么做
  • 南京网站定制公司如何用源码做网站
  • 网站建站视频wordpress网站好用吗
  • 网页设计网站搭建建筑材料价格信息网
  • 淮安市交通建设局网站新郑做网站
  • 新开传奇网站手机版深圳房管局官网
  • 重庆网站建设营销深圳微商城网站设计公司
  • 用织梦做的网站是模板的吗外贸展示型模板网站
  • 网站seo的关键词排名怎么做的定制和订制
  • 自适应网站做多大尺寸的四川建设厅电话网站
  • 易语言可以做网站了吗电商平台排名100强
  • 网站代码开发方式影视公司网页设计
  • 如何选择网站定制公司响水专业做网站
  • 海门建网站公司凡客模板wordpress
  • 网站关键字排名php开源cms
  • 手机商城手机网站建设多少钱明水县网站建设
  • 北京网站优化外包做板材外贸一般用哪个网站
  • 北京建设网站有哪些公司药店网站模板
  • 网站欢迎页面怎么做个人简历免费模板下载
  • 宁波外贸网站建设竣工验收报告查询网