字节跳动今年的薪资。。

文摘   2024-12-09 14:08   湖北  
这是苍何的第 249 篇原创!

大家好,我是苍何。

不愧是大厂,给的总是超乎人的想象,看了这么多大厂的薪资,今天我们也来看下字节今年的薪资吧。

基本上今年字节 26-30 k 都属于白菜价段位了,不少的 SSP 开的简直让人心动:

1、后端开发,32k * 15,硕士 985,SSP,地点:上海
2、算法,100w 总包 + 股票,博士海归,SSP 的水平,地点:深圳
3、后端,37 * 15 + 1Q0签字 + 1.5k * 12,硕士 985,算SSP,地点:北京
4、后端,30k * 15,硕士 211,白菜价,地点:北京

怎么样,是不是很心动?有没有很想将这些 money 装进自己的口袋?

大厂的确敢给,很多拿到 offer 的同学反馈,按照苍何一直强调的知识点来复习,问题不大,而且面试的时候碰上对的人和对的问题,这不分分钟 SSP。

说是这样说,其实这里面还有一些重要的前提,就反馈来看,总结出以下几点比较重要:

  • 提前实习,最好也是冲大厂实习,大大加分

  • 除了八股,算法必须准备(特别字节是标配)

  • 项目经历要重点关注,不要烂大街,要有亮点项目

尤其是项目这块,准备几个备着。为了给大家一个能拿得出手的项目,苍何最近稳定下来后,重新启动了 PmHub 的更新,昨晚搞到晚上十二点,终于把体验环境搞好了。

最主要原因是苍何的服务器性能远远支撑不起微服务全部跑起来,给大家看看目前的服务器监控状态,内存直接快打满,磁盘也仅剩 15%不到。

不得不说,微服务还是很吃内存呀,个人整服务器资源真是成本巨高,但反观公司倒是感觉资源很足,苍何最近在公司做 k8s 集群的迁移部署,公司动不动就是 128 G,256 G 这样的大内存,再反观我们可怜的资源,不禁留下了没出息的泪水。

哈哈哈,慢慢来吧,后期我想体验环境就先以单体跑,然后让资源做一些更有价值的事情。

晚上又熬夜写了一篇付费文档,争取要在春节前,将文档更新完毕,也不辜负大家这么久对 PmHub 的期待。

...

回归主题。

今天来一道字节考过的面试算法题,给枯燥的牛马生活加加油😂。

题目描述

平台:LeetCode
题号:50
题目名称:Pow(x, n)

实现 pow(x, n),即计算 x 的整数 n 次幂函数(即 xnx^n)。

示例

示例 1:

输入:x = 2.00000, n = 10  
输出:1024.00000

示例 2:

输入:x = 2.10000, n = 3  
输出:9.26100

示例 3:

输入:x = 2.00000, n = -2  
输出:0.25000
解释:2^-2 = 1 / (2^2) = 1 / 4 = 0.25

提示

  • −100.0<x<100.0-100.0 < x < 100.0

  • −231<=n<=231−1-2^{31} <= n <= 2^{31}-1

  • n 是一个整数

  • 要么 x 不为零,要么 n>0n > 0

  • −104<=xn<=104-10^4 <= x^n <= 10


解题思路

本题需要实现一个高效的求幂函数。考虑到 nn 的值可能很大或者很小,我们需要优化计算。

优化思路:快速幂法

快速幂法通过将 nn 二进制分解实现幂的快速计算,时间复杂度为 O(log⁡n)O(\log n)。具体步骤如下:

  1. 如果 n<0n < 0,将问题转换为求正指数幂:xn=1/x−nx^n = 1 / x^{-n}。

  2. 使用循环来模拟二进制分解:

  • 如果当前的 nn 是奇数,将结果乘以当前的 xx。

  • 每次将 xx 平方,同时将 nn 整除 2。

  • 当 n=0n = 0 时,返回结果。

  • 特殊情况

    • n=0n = 0:返回 1。

    • x=0x = 0:如果 n>0n > 0,返回 0,否则无意义。


    代码实现

    以下是基于快速幂的 Java、C++ 和 Python 实现代码。


    Java 代码

    public class Solution {
    public double myPow(double x, int n) {
    long N = n; // 避免 n 为负时溢出
    return N >= 0 ? quickPow(x, N) : 1.0 / quickPow(x, -N);
    }

    private double quickPow(double x, long n) {
    double result = 1.0;
    double currentProduct = x; // 当前的底数
    while (n > 0) {
    if ((n % 2) == 1) { // n 是奇数
    result *= currentProduct;
    }
    currentProduct *= currentProduct; // 底数平方
    n /= 2; // n 右移一位(等价于整除 2)
    }
    return result;
    }
    }

    C++ 代码

    class Solution {
    public:
    double myPow(double x, int n) {
    long long N = n; // 避免 n 为负时溢出
    return N >= 0 ? quickPow(x, N) : 1.0 / quickPow(x, -N);
    }

    private:
    double quickPow(double x, long long n) {
    double result = 1.0;
    double currentProduct = x; // 当前的底数
    while (n > 0) {
    if (n % 2 == 1) { // n 是奇数
    result *= currentProduct;
    }
    currentProduct *= currentProduct; // 底数平方
    n /= 2; // n 右移一位(等价于整除 2)
    }
    return result;
    }
    };

    Python 代码

    class Solution:
    def myPow(self, x: float, n: int) -> float:
    def quick_pow(x, n):
    result = 1.0
    current_product = x
    while n > 0:
    if n % 2 == 1: # n 是奇数
    result *= current_product
    current_product *= current_product # 底数平方
    n //= 2 # n 整除 2
    return result

    if n >= 0:
    return quick_pow(x, n)
    else:
    return 1.0 / quick_pow(x, -n)

    时间复杂度与空间复杂度

    • 时间复杂度:O(log⁡n)O(\log n),通过二进制分解 nn 进行幂运算。

    • 空间复杂度:O(1)O(1),只需常数额外空间。

    ending

    你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪

    点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。

    感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【字节】,在后台回复【字节】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。

    注意,后台(不是评论区,是后台)回复【字节】即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。

    就像大家之前回复【八股】一样。

    【我爱这个魔幻的世界】

    苍何
    独立开发者,专注于Java企业级开发,AI 工具提效。偶尔闪光、经常表达、总是真诚。
     最新文章