华为各级OD薪资曝光。。

华为 OD 薪资

之前写过几篇华为 OD 的算法题,后来有不少同学问起,华为 OD 薪资到底怎么样。

华为 OD 的薪资待遇,网上信息不多,只找到一篇相对靠谱的爆料:

alt

上述是月 base 的爆料,然后通常 OD 是 15-16 薪。

至于和正式员工的差别,以 14 级为例,正式员工基本在 20k 以上,而 OD 只有 13k-17k,但周末加班则是和正式员工一样,都是双倍。

网上信息很多,大多数都没有准确信息来源。之前有个说法十分流行,说华为 OD 曾在工作群中被骂道「你是外包不是正式员工,不要偷吃公司零食,注意素质」。

但根据目前掌握的信息来说,华为 OD 也是能享受常规待遇:

alt

但股票分红这一块,华为 OD 自然是没有的。

...

回归主线。

来一道和「华为 OD」相关的面试原题。

题目描述

平台:LeetCode

题号:538

给出二叉搜索树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

提醒一下, 二叉搜索树满足下列约束条件:

  • 节点的左子树仅包含键小于节点键的节点。
  • 节点的右子树仅包含键大于节点键的节点。
  • 左右子树也必须是二叉搜索树。

示例 1: alt

输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]

输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

示例 2:

输入:root = [0,null,1]

输出:[1,null,1]

提示:

  • 树中的节点数在 范围内。
  • 树中的所有值均不重复 。

中序遍历

利用 BST 的中序遍历是有序」 的特性,我们可以通过两次遍历 BST 来求解问题。

首先,通过一次遍历,计算出整棵树的节点总和 tot,然后在中序遍历过程中,不断对 tot 进行更新,将其作为当前未遍历到的节点的总和,用于给当前节点赋值。

假设当前遍历到的节点为 x(起始节点值为 t),那么将节点更新为当前节点 tot 后,更新 tot = tot - t

这是常规的中序遍历做法,更进一步,如果将其中序遍历的顺序进行翻转(从「左中右」调整为「右中左」),则可实现一次遍历。

Java 代码:

class Solution {
    int tot = 0;
    public TreeNode convertBST(TreeNode root) {
        dfs(root);
        return root;
    }
    void dfs(TreeNode root) {
        if (root == nullreturn ;
        dfs(root.right);
        tot += root.val;
        root.val = tot;
        dfs(root.left);
    }
}

C++ 代码:

class Solution {
public:
    int tot = 0;
    TreeNode* convertBST(TreeNode* root) {
        dfs(root);
        return root;
    }
    void dfs(TreeNode* root) {
        if (root == nullptrreturn;
        dfs(root->right);
        tot += root->val;
        root->val = tot;
        dfs(root->left);
    }
};

Python 代码:

class Solution:
    def convertBST(self, root: TreeNode) -> TreeNode:
        tot = 0
        def dfs(root):
            nonlocal tot
            if not root: return
            dfs(root.right)
            tot += root.val
            root.val = tot
            dfs(root.left)
        dfs(root)
        return root

TypeScript 代码:

function convertBST(root: TreeNode | null): TreeNode | null {
    let tot = 0;
    const dfs = function(root: TreeNode | null): void {
        if (!root) return ;
        dfs(root.right);
        tot += root.val;
        root.val = tot;
        dfs(root.left);
    }
    dfs(root);
    return root;
};
  • 时间复杂度:
  • 空间复杂度:

最后

给大伙通知一下 📢 :

全网最低价 LeetCode 会员目前仍可用!!!

📅 年度会员:有效期加赠两个月!!; 季度会员:有效期加赠两周!!

🧧 年度会员:获 66.66 现金红包!!; 季度会员:获 22.22 现金红包!!

🎁 年度会员:参与当月丰厚专属实物抽奖(中奖率 > 30%)!!

专属链接:leetcode.cn/premium/?promoChannel=acoier

我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。

欢迎关注,明天见。

更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
华为OD (Open Distributed)是华为公司推出的一种开放式分布式软件架构。它是为了应对分布式系统快速发展的需求而设计的,旨在解决分布式行业中的传统问题,并提供更高效的分布式计算解决方案。 C语言作为一种广泛使用的编程语言,具有高效、灵活的特点,可以广泛应用于各个领域。在华为OD中,C语言可以用于开发各种组件、模块和库,为系统提供基础的功能支持。 在2023年,华为OD C语言的应用预计会更加成熟和广泛。随着分布式系统的需求继续增长,华为OD架构将需要更多的可靠和高效的C语言开发人员来进行系统的开发和维护工作。C语言的优势在于其使用广泛,拥有大量的相关工具、框架和文档资源,能够提高开发效率和代码质量。 华为OD C语言的应用领域包括但不限于网络通信、大数据处理、人工智能、物联网等。无论是开发网络协议、编写高性能的数据处理算法还是设计高效的机器学习模型,C语言都能胜任。 随着华为OD的不断发展和应用推广,2023年华为OD C语言将进一步成为分布式系统领域的重要开发语言之一。华为OD C语言的发展将有助于提升分布式系统的性能、稳定性和可靠性,促进分布式应用的创新和发展。在这个过程中,C语言开发者将扮演着重要的角色,他们将通过自己的工作为华为OD带来更多的创新和突破。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值