大家好,我是苍何。
百度校招也开奖了。
这个曾经的互联网老大哥,BAT 之首,昔日的王,虽说这些年被宇宙厂这些后起之秀赶超,但瘦死的骆驼比马大,在人工智能上的持续发力和投入,会再次夺回王座吗?
夺回不夺回,我不清楚,我也不在意,但就今年百度给的这薪资,我就忍不住竖起我粗壮的大拇指。
这薪资解读一下,月薪基本 base 有 35 k,发 16 个月,40 k 签字费+12 w 股票分 2 年发,算出来有多少?太过于庞大,我就懒得算了,反正高的离谱。
吓的楼主都觉得怕 hold 不住,不过有啥 hold 不住的,他们都敢要你,上去了就是干,世界就是个草台班子,上去就是干🐶
不清楚是不是搞文心一言的算法开发,如果是,那希望文心越来越好吧,毕竟我只用过一次就放弃了,不知道现在迭代到什么版本啦?收费了不?
去年百度开奖还是蛮快的,今年稍微慢了些,不过如果开的都是如此薪资,那也值了啊。
从目前爆料的情况来看,25 届百度校招开发岗位的薪资,大部分都是集中在 24 k 和 26 k,少部分特别优秀的才能拿到 32 k 的薪资。
下面做了下目前薪资情况统计:
普通 offer:
22k * 16 + 6w 签字费,同学 bg 本科,base 北京
24k * 16 + 6w 签字费,同学 bg 硕士 211,base 北京
sp offer:
26k * 16 + 6w 签字费,同学 bg 硕士 211,base 北京
29k * 16 + 6w 签字费,同学 bg 硕士 211,base 北京
30k * 16 + 6w 签字费,同学 bg 硕士 985,base 北京
ssp offer:
32k * 16 + 40 k 签字费+12 w 股票,同学 bg 硕士 985,base 北京
当然还有一些还在开奖中,我觉得要重视基本 base 薪资,至于 16 薪资和签字费,这个不是立马能拿到的,有些和绩效挂钩,今年如果背了低绩效指不定就发的少。
而签字费,也不是一次性就发给你的,通常是 2 年内发完,比如 12 w 签字费,今年发 6 万,明年再发 6 万,如果中途离职,直接不给发,这也是留住人才的一种方式,高啊👍
好啦,关于百度今年的开奖薪资,你有看法?欢迎评论区讨论。
...
回归主题。
今天来一道百度开发考过的一道面试算法题,给枯燥的牛马生活加加油😂。
题目描述
平台:LeetCode
题号:191
题目名称:位1的个数
题目描述:
给定一个正整数 n
,编写一个函数,获取一个正整数的二进制形式并返回其二进制表示式中 设置位 的个数(也被称为汉明重量)。
示例1:
输入:
n = 11
输出:
3
解释:
输入的二进制串 1011
中,共有 3
个设置位。
示例2:
输入:
n = 128
输出:
1
解释:
输入的二进制串 10000000
中,共有 1
个设置位。
示例3:
输入:
n = 2147483645
输出:
30
解释:
输入的二进制串 1111111111111111111111111111101
中,共有 30
个设置位。
提示:
1 <= n <= 231−12^{31} - 1
解题思路
解决该问题有以下两种常见方法:
逐位检查:
将数字的最低位与
1
按位与(&)操作,判断最低位是否为1
。每次右移数字
n
,直到n
为0
。每次检查中发现
1
时,累加计数器。
按位消除最低位的 1
:
利用
n & (n - 1)
的性质,该操作每次会将数字n
的二进制中最右边的1
变为0
。每次操作后计数器加
1
,直到数字n
为0
。
两种方法时间复杂度均为 O(设置位数),比直接遍历所有位数更高效。
代码实现
方法一:逐位检查
Java代码:
public class HammingWeight {
public int hammingWeight(int n) {
int count = 0;
while (n != 0) {
count += (n & 1); // 检查最低位是否为1
n >>>= 1; // 无符号右移
}
return count;
}
}
C++代码:
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
while (n != 0) {
count += (n & 1); // 检查最低位是否为1
n >>= 1; // 右移1位
}
return count;
}
};
Python代码:
class Solution:
def hammingWeight(self, n: int) -> int:
count = 0
while n != 0:
count += (n & 1) # 检查最低位是否为1
n >>= 1 # 右移1位
return count
方法二:按位消除最低位的 1
Java代码:
public class HammingWeight {
public int hammingWeight(int n) {
int count = 0;
while (n != 0) {
n &= (n - 1); // 消除最低位的1
count++;
}
return count;
}
}
C++代码:
class Solution {
public:
int hammingWeight(uint32_t n) {
int count = 0;
while (n != 0) {
n &= (n - 1); // 消除最低位的1
count++;
}
return count;
}
};
Python代码:
class Solution:
def hammingWeight(self, n: int) -> int:
count = 0
while n != 0:
n &= (n - 1) # 消除最低位的1
count += 1
return count
时间复杂度和空间复杂度
时间复杂度:
方法一:O(k),其中
k
是二进制中位数。每次右移一位,需要执行k
次操作。方法二:O(设置位数),每次操作消除一个设置位,效率较高。
空间复杂度:
两种方法均为 O(1),只使用常量级额外空间。
两种方法各有特点,若输入的数字设置位较少,方法二更优。
ending
你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪
点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。
感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【百度】,在后台回复【百度】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。
注意,后台(不是评论区,是后台)回复【百度】即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
就像大家之前回复【八股】一样。