网易首页 > 网易号 > 正文 申请入驻

秋招的HR为什么喜欢跑路?

0
分享至

专栏:50多种数据结构彻底征服

专栏:50多种经典图论算法全部掌握

一网友在面试快手之后,进度一直是录用评估,这都评估一个月了还没消息,结果该网友给邮件上的HR打电话询问情况,HR说她离职了。我以为这是个例,结果在评论区有很多网友都遇到这种情况。这又是什么套路?为什么秋招的HR都喜欢离职,难道对接的HR都是实习的?

如果遇到这种情况,继续投简历找工作就是了,不用等了,HR离职有可能是真的离职,也有可能是你面试没通过,又懒得发邮件,随便找个借口应付了事。就像之前找工作面试结束之后HR会说回去等通知,如果过了肯定会收到通知,如果没过就算等一百年也不会给你通知。

--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第106题:从中序与后序遍历序列构造二叉树。

问题描述

来源:LeetCode第106题

难度:中等

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗二叉树 。

示例1:


输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3] 输出:[3,9,20,null,null,15,7]

示例2:


输入:inorder = [-1], postorder = [-1] 输出:[-1]

  • 1 <= inorder.length <= 3000

  • postorder.length == inorder.length

  • -3000 <= inorder[i], postorder[i] <= 3000

  • inorder 和 postorder 都由 不同 的值组成

  • postorder 中每一个值都在 inorder 中

  • inorder 保证是树的中序遍历

  • postorder 保证是树的后序遍历

问题分析

这题是让根据中序和后续遍历数组来还原二叉树,我们知道 二叉树后序数组的最后一个元素一定是根节点 ,因为后序遍历的顺序是先遍历左右子树在遍历根节点。而中序遍历是根节点的左子树都遍历完了才遍历根节点,所以在中序数组中,根节点前面的元素是他的左子树节点,后面的元素是他右子树的节点。

根据这个特性我们可以把中序数组和后序数组划分两部分,然后每部分继续按照上面的方法划分,直到只有一个节点,不能划分为止。比如示例 1 的数组划分如下图所示。

划分的时候我们没必要把数组进行截取,只需要使用几个变量分别记录下后序和中序数组的区间范围即可。因为我们是根据后序数组中的元素在中序数组中的位置来划分中序数组的,所以这里只需要记录中序数组的范围,后序数组只需要记录起始位置即可。

JAVA:

public TreeNode buildTree(int[] inorder, int[] postorder) {     // 为了方便后续进行查找,先把中序数组的所有值存储到map中     Map
         
  map =  new HashMap<>();      int length = inorder.length;      for ( int i =  0; i < length; i++)         map.put(inorder[i], i);      return build(postorder, map, length -  1,  0, length -  1); } private TreeNode build(int[] postorder, Map  map,                         int postEnd,  int inStart,  int inEnd)  {      if (inStart > inEnd)  return  null; // 表示数组被访问完了。      // 使用后序数组的最后一个元素创建根节点     TreeNode root =  new TreeNode(postorder[postEnd]);      // 查找根节点在中序数组中位置      int index = map.get(root.val);      int rightCount = inEnd - index; // 右子树的所有节点个数      // 后序数组区间划分:      // [……, postEnd-rightCount-1]左子树      // [postEnd-rightCount, postEnd-1]右子树      // [postEnd, postEnd]根节点      // 中序数组区间划分:      // [inStart, index - 1]左子树      // [index, index]根节点      // [index + 1, inEnd]右子树     root.left = build(postorder, map, postEnd - rightCount -  1, inStart, index -  1);     root.right = build(postorder, map, postEnd -  1, index +  1, inEnd);      return root; }

C++:

public:     TreeNode *buildTree(vector

  &inorder, vector

  &postorder) {         // 为了方便后续进行查找,先把中序数组的所有值存储到map中         unordered_map

  m;         int length = inorder.size();         for (int i = 0; i < length; i++)             m[inorder[i]] = i;         return build(postorder, m, length - 1, 0, length - 1);     }     TreeNode *build(vector

  &postorder, unordered_map

  &m,                     int postEnd, int inStart, int inEnd) {         if (inStart > inEnd)             return nullptr;// 表示数组被访问完了。         // 使用后序数组的第一个元素创建根节点         TreeNode *root = new TreeNode(postorder[postEnd]);         // 使用后序数组的最后一个元素创建根节点         int index = m[root->val];         int rightCount = inEnd - index;// 右子树的所有节点个数         // 后序数组区间划分:         // [……, postEnd-rightCount-1]左子树         // [postEnd-rightCount, postEnd-1]右子树         // [postEnd, postEnd]根节点         // 中序数组区间划分:         // [inStart, index - 1]左子树         // [index, index]根节点         // [index + 1, inEnd]右子树         root->left = build(postorder, m, postEnd - rightCount - 1, inStart, index - 1);         root->right = build(postorder, m, postEnd - 1, index + 1, inEnd);         return root;     }





Python:

def buildTree(self, inorder: List[int], postorder: List[int]) -> Optional[TreeNode]:     def build(postEnd: int, inStart: int, inEnd: int):         if inStart > inEnd:             return None  # 表示数组被访问完了。         # 使用后序数组的最后一个元素创建根节点         root = TreeNode(postorder[postEnd])         # 查找根节点在中序数组中位置         index = m[root.val]         rightCount = inEnd - index  # 右子树的所有节点个数         '''         后序数组区间划分:         [……, postEnd-rightCount-1]左子树         [postEnd-rightCount, postEnd-1]右子树         [postEnd, postEnd]根节点         中序数组区间划分:         [inStart, index - 1]左子树         [index, index]根节点         [index + 1, inEnd]右子树         '''         root.left = build(postEnd - rightCount - 1, inStart, index - 1)         root.right = build(postEnd - 1, index + 1, inEnd)         return root     # 为了方便后续进行查找,先把中序数组的所有值存储到map中     m = {element: i for i, element in enumerate(inorder)}     return build(len(postorder) - 1, 0, len(postorder) - 1)

笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解800多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以 下载我整理的1000多页的PDF算法文档 。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
国家力挺!张雪机车获2.4亿授信+200亩地,9.33%研发占比冲全球高端

国家力挺!张雪机车获2.4亿授信+200亩地,9.33%研发占比冲全球高端

说故事的阿袭
2026-06-24 16:50:23
难以置信!成绩未出,已收到复旦大学短信,上海一家长爆料引热议

难以置信!成绩未出,已收到复旦大学短信,上海一家长爆料引热议

火山詩话
2026-06-24 08:52:00
全新宝马X5要来了,或6月30日首发,国产依旧加长

全新宝马X5要来了,或6月30日首发,国产依旧加长

汽车公告板
2026-06-23 17:47:34
郑钦文1-2陶森无缘第2轮!二三盘首局均被破发,双误次数比ACE多

郑钦文1-2陶森无缘第2轮!二三盘首局均被破发,双误次数比ACE多

篮球资讯达人
2026-06-24 21:12:31
地铁强拽女孩大爷遭人肉,正脸曝光全网怒

地铁强拽女孩大爷遭人肉,正脸曝光全网怒

爱下厨的阿酾
2026-06-24 18:26:38
中国不给脸,新加坡就是个县!英媒:中国富人正集体逃离新加坡

中国不给脸,新加坡就是个县!英媒:中国富人正集体逃离新加坡

好贤观史记
2026-06-23 11:58:12
戚薇泳装生图

戚薇泳装生图

情感大头说说
2026-06-23 13:24:38
立讯精密、工业富联、领益智造、中国长城谁是液冷服务器突破老大

立讯精密、工业富联、领益智造、中国长城谁是液冷服务器突破老大

长风价值掘金
2026-06-24 15:44:17
巴媒:巴西赛前全队合影的习惯将保持至世界杯结束

巴媒:巴西赛前全队合影的习惯将保持至世界杯结束

懂球帝
2026-06-24 11:39:30
郑维山病危,军委副主席张万年:让他儿子立刻回京,不管任务多重

郑维山病危,军委副主席张万年:让他儿子立刻回京,不管任务多重

落雪听梅a
2026-06-24 09:04:49
价格暴涨!山姆、盒马已限购!

价格暴涨!山姆、盒马已限购!

广州生活美食圈
2026-06-24 12:29:42
两姨妈各拿三百万,一个存银行一个买商铺,十年后上门我愣住了

两姨妈各拿三百万,一个存银行一个买商铺,十年后上门我愣住了

墨染尘香
2026-06-22 08:46:04
金钱的狂飙与门票的冰冷:美加墨世界杯凭什么甩开巴黎奥运一条街

金钱的狂飙与门票的冰冷:美加墨世界杯凭什么甩开巴黎奥运一条街

民间胡扯老哥
2026-06-24 05:59:27
日本妈妈给1岁儿子庆生,被眼尖网友发现虐童!幼童脸被摁进蛋糕、强灌啤酒、溺水…

日本妈妈给1岁儿子庆生,被眼尖网友发现虐童!幼童脸被摁进蛋糕、强灌啤酒、溺水…

东京新青年
2026-06-24 20:38:26
脑科学揭秘:男人对一个女人产生“多巴胺成瘾”,和她漂不漂亮没有半点关系,真正的引爆点是她身上这两种节奏

脑科学揭秘:男人对一个女人产生“多巴胺成瘾”,和她漂不漂亮没有半点关系,真正的引爆点是她身上这两种节奏

心理观察局
2026-06-24 06:45:23
阿里巴巴冒出小马云工牌 原是实习生花名 审批都过了光速离职

阿里巴巴冒出小马云工牌 原是实习生花名 审批都过了光速离职

快科技
2026-06-24 17:30:16
网传80%的高校教师陷入最无奈的困境,没空做学术…

网传80%的高校教师陷入最无奈的困境,没空做学术…

慧翔百科
2026-06-23 11:34:37
终于承认了:房价跌了,真的变穷了

终于承认了:房价跌了,真的变穷了

大川东山再起
2026-06-23 12:11:47
2026全网最惨基金经理,非她莫属!

2026全网最惨基金经理,非她莫属!

功夫财经
2026-06-24 08:36:17
AI正在摧毁就业和消费

AI正在摧毁就业和消费

木蹊说
2026-06-23 18:02:51
2026-06-24 23:28:49
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

头条要闻

在走廊"罚站"时看到怀孕老师摔倒 两名小学生飞奔搀扶

头条要闻

在走廊"罚站"时看到怀孕老师摔倒 两名小学生飞奔搀扶

体育要闻

字母哥,会把凯尔特人拆了吗?

娱乐要闻

向佐向佑兄弟合体直播!母子终于和解

财经要闻

逃税23亿:审计署年报直指七家机构

科技要闻

豆包专业版上线:定价68-500元每月

汽车要闻

施鹏泽:为什么奥迪E7X强调座舱气味安全?

态度原创

教育
旅游
健康
时尚
军事航空

教育要闻

大部分同学的高考成绩都会比平时高二十分左右

旅游要闻

山为骨,水为血,天地为窖,时光为曲,酿一杯迎驾山河

神经内科专家破解中风十大谣言

“这个风格”越来越火,比老钱风更高级,比高智风更气质

军事要闻

伊朗代表:霍尔木兹海峡已免费开放

无障碍浏览 进入关怀版