百度新"福利",全网都笑了。。

教育   2024-12-29 16:00   广东  

百度

最近,百度行政颁布了一项新政策,是关于「办公电脑开放内购」的新规定:

具体的,正式员工名下笔记本购置日期满 48 个月,本人可按采购价的 5% 进行内购。

例如采购价 2W 的笔记本电脑,满 4 年后,员工可 1000 元带回家。

消息一出,不少只在百度工作过,同时对外面大厂福利并不了解的同学,纷纷觉得这是天大的"福利",甚至已经开始盘算自己手上的电脑还有多久才满 48 个月 🤣🤣🤣

实际上,外面不少大厂,都是「免费」或「几乎免费」就可以拿走,而且规则还没有百度的多(例如百度限制名下唯一领用的笔记本电脑,且每 48 个月一次内购机会)。

要我说,满 4 年按 5% 采购价格内购是什么概念?妥妥电子垃圾,5% 这个价格,没有供应商会收。百度还煞有其事,整出诸多限制,真整的跟什么"福利"一样。

简单说一下其他大厂,在「旧电脑内购」这件事上的规矩:

  • 腾讯/华为/阿里:电脑满三年,可申请换新,旧电脑免费带走
  • 字节:电脑满三年,可申请换新,旧电脑按照天数进行折旧,价格远比 5% 要低。如果是满四年,无论型号,统一 100 元直接带走

百度的同学,看完之后,还觉得这是福利吗?

对此,你怎么看?你司的旧设备支持回购(甚至 0 元购)吗?规则如何?

...

回归主题。

周末,来一道超简单算法题。

题目描述

平台:LeetCode

题号:1161

给你一个二叉树的根节点 root

设根节点位于二叉树的第 层,而根节点的子节点位于第 层,依此类推。

请返回层内元素之和最大的那几层(可能只有一层)的层号,并返回其中最小的那个。

示例 1:

输入:root = [1,7,0,7,-8,null,null]

输出:2

解释:
第 1 层各元素之和为 1,
第 2 层各元素之和为 7 + 0 = 7,
第 3 层各元素之和为 7 + -8 = -1,
所以我们返回第 2 层的层号,它的层内元素之和最大。

示例 2:

输入:root = [989,null,10250,98693,-89388,null,null,null,-32127]

输出:2

提示:

  • 树中的节点数在 范围内

层序遍历

根据题意,使用 BFS 进行层序遍历即可。

每次以「层」为单位进行拓展,统计该层的元素和,维护处理过程中的最大值层数和,以及层深度。

Java 代码:

class Solution {
    public int maxLevelSum(TreeNode root) {
        Deque<TreeNode> d = new ArrayDeque<>();
        int max = -0x3f3f3f3f, depth = 1, ans = 0;
        d.addLast(root);
        while (!d.isEmpty()) {
            int sz = d.size(), cur = 0;
            while (sz-- > 0) {
                TreeNode t = d.pollFirst();
                if (t.left != null) d.addLast(t.left);
                if (t.right != null) d.addLast(t.right);
                cur += t.val;
            }
            if (cur > max) {
                max = cur; ans = depth;
            }
            depth++;
        }
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    int maxLevelSum(TreeNode* root) {
        queue<TreeNode*> q;
        int maxv = -0x3f3f3f3f, depth = 1, ans = 0;
        q.push(root);
        while (!q.empty()) {
            int sz = q.size(), cur = 0;
            while (sz-- > 0) {
                TreeNode* t = q.front(); q.pop();
                if (t->left != nullptr) q.push(t->left);
                if (t->right != nullptr) q.push(t->right);
                cur += t->val;
            }
            if (cur > maxv) {
                maxv = cur; ans = depth;
            }
            depth++;
        }
        return ans;
    }
};

Python 代码:

class Solution:
    def maxLevelSum(self, root: Optional[TreeNode]) -> int:
        maxv, depth, ans = -0x3f3f3f3f10
        d = deque([root])
        while d:
            sz, cur = len(d), 0
            for _ in range(sz):
                t = d.popleft()
                if t.left:
                    d.append(t.left)
                if t.right:
                    d.append(t.right)
                cur += t.val
            if cur > maxv:
                maxv, ans = cur, depth
            depth += 1
        return ans

TypeScript 代码:

function maxLevelSum(root: TreeNode | null): number {
    const d: TreeNode[] = new Array<TreeNode>()
    let he = 0, ta = 0
    d[ta++] = root
    let max = -0x3f3f3f3f, depth = 1, ans = 0
    while (he < ta) {
        let sz = ta - he, cur = 0
        while (sz-- > 0) {
            const t = d[he++]
            if (t.left != null) d[ta++] = t.left
            if (t.right != null) d[ta++] = t.right
            cur += t.val
        }
        if (cur > max) {
            max = cur; ans = depth
        }
        depth++
    }
    return ans
};
  • 时间复杂度:
  • 空间复杂度:

最后

巨划算的 LeetCode 会员优惠通道目前仍可用 ~

使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。

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

欢迎关注,明天见。



宫水三叶的刷题日记
锐评时事热点的 算法与数据结构 题解区博主。「 刷穿 LeetCode 」系列文章原创公众号。
 最新文章