网易深圳裁员
昨天有一篇小作文在网络上盛行,内容挺唬人,大概是「网易深圳全部裁员」,但相关"实证"传来传来也就是一小段微信聊天截图,相信大家也看过了:
又是标准的 0 帧起手,旧菜新炒式的造谣。
那实际情况是怎么样的?
真实的情况,网易在深圳本身就没有多少业务,前几年开始就已经不招人了。
所谓的「网易深圳全部裁员」,其实只是针对单一产品(猜测是射击游戏《天启行动》)的常规调整,而就算是单一产品的裁员,也不是网传的"一锅端",有不少员工还是通过内部转岗,最终留了下来。
全员优化是假的,但网易正走下坡路是真的。
在网易刚刚发布的 2024 年第三季度财报中显示:
网易 Q3 收入 262 亿元,同比下降 3.9%。其中网易主要业务「游戏及相关增值服务」,在 Q3 收入为 209 亿元(其中游戏收入 202 亿),同比下降 4.2% 归属于公司股东的净利润为 65 亿元,去年同期为 78 亿元,同比下降 16.7% 非公认会计准则下的净利润为 75 亿元,去年同期为 86 亿元,同比下降 13%
营收数据可谓全面下滑,目前员工的奖金待遇必然大打折扣。如果情况再恶化下去,进一步收缩产品线,再次大面积裁员,可能性也不小。
对此,你怎么看?你玩过什么网易出品的游戏?评价如何?欢迎评论区交流。
...
回归主题。
周末,来一道简单但做法丰富的算法题。
题目描述
平台:LeetCode
题号:461
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
给出两个整数 x
和 y
,计算它们之间的汉明距离。
示例:
输入: x = 1, y = 4
输出: 2
解释:
1 (0 0 0 1)
4 (0 1 0 0)
↑ ↑
上面的箭头指出了对应二进制位不同的位置。
提示:
逐位比较
本身不改变 和 ,每次取不同的偏移位进行比较,不同则加一。
循环固定取满 。
Java 代码:
class Solution {
public int hammingDistance(int x, int y) {
int ans = 0;
for (int i = 0; i < 32; i++) {
int a = (x >> i) & 1 , b = (y >> i) & 1;
ans += a != b ? 1 : 0;
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int hammingDistance(int x, int y) {
int ans = 0;
for (int i = 0; i < 32; i++) {
int a = (x >> i) & 1, b = (y >> i) & 1;
ans += a != b ? 1 : 0;
}
return ans;
}
};
Python 代码:
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
ans = 0
for i in range(32):
a, b = (x >> i) & 1, (y >> i) & 1
ans += a != b
return ans
TypeScript 代码:
function hammingDistance(x: number, y: number): number {
let ans = 0;
for (let i = 0; i < 32; i++) {
let a = (x >> i) & 1, b = (y >> i) & 1;
ans += a !== b ? 1 : 0;
}
return ans;
};
时间复杂度:, 固定为 空间复杂度:
右移统计
每次都统计当前 和 的最后一位,统计完则将 和 右移一位。
当 和 的最高一位 都被统计过之后,循环结束。
Java 代码:
class Solution {
public int hammingDistance(int x, int y) {
int ans = 0;
while ((x | y) != 0) {
int a = x & 1, b = y & 1;
ans += a ^ b;
x >>= 1; y >>= 1;
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int hammingDistance(int x, int y) {
int ans = 0;
while ((x | y) != 0) {
int a = x & 1, b = y & 1;
ans += a ^ b;
x >>= 1; y >>= 1;
}
return ans;
}
};
Python 代码:
class Solution:
def hammingDistance(self, x: int, y: int) -> int:
ans = 0
while (x | y) != 0:
a, b = x & 1, y & 1
ans += a ^ b
x, y = x >> 1, y >> 1
return ans
TypeScript 代码:
function hammingDistance(x: number, y: number): number {
let ans = 0;
while ((x | y) !== 0) {
let a = x & 1; let b = y & 1;
ans += a ^ b;
x >>= 1; y >>= 1;
}
return ans;
};
时间复杂度:, 最多为 空间复杂度:
lowbit
熟悉树状数组的同学都知道,lowbit
可以快速求得 二进制表示中最低位 表示的值。
因此我们可以先将 和 进行异或,再统计异或结果中 的个数。
Java 代码:
class Solution {
int lowbit(int x) {
return x & -x;
}
public int hammingDistance(int x, int y) {
int ans = 0;
for (int i = x ^ y; i > 0; i -= lowbit(i)) ans++;
return ans;
}
}
C++ 代码:
class Solution {
public:
int lowbit(int x) {
return x & -x;
}
int hammingDistance(int x, int y) {
int ans = 0;
for (int i = x ^ y; i > 0; i -= lowbit(i)) ans++;
return ans;
}
};
Python 代码:
class Solution:
def lowbit(self, x):
return x & -x
def hammingDistance(self, x: int, y: int) -> int:
ans, cur = 0, x ^ y
while cur > 0:
ans += 1
cur -= self.lowbit(cur)
return ans
TypeScript 代码:
function lowbit(x: number): number {
return x & -x;
}
function hammingDistance(x: number, y: number): number {
let ans = 0;
for (let i = x ^ y; i > 0; i -= lowbit(i)) ans++;
return ans;
};
时间复杂度:, 最多为 空间复杂度:
最后
巨划算的 LeetCode 会员优惠通道目前仍可用 ~
使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。
我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。