深信服开奖,简直是劝退价。。

深信服

最近深信服开奖了,我在后台得到了不少坐标深圳的读者爆料。

绝大多都表示:开的是「劝退价、侮辱价」,拒了。

前一句我相信真的是他们的内心感受,但后一句是不是真的就不知道了,这年头 0Offer 的人太多了 🤣🤣🤣

我这边总结了一下今年「深信服-研发岗」的开奖情况:

  • 白菜:17k~19k,最低 12 薪,最高 18 薪,无签字费
  • SP:22k~24k,最低 12 薪,最高 18 薪,签字费最高 20W(三年期)
  • SSP:28k~29k,最低 12 薪,最高 18 薪,签字费最高 30W(三年期)

PS. 给新来的读者解释一下,签字费是一笔一次性的费用(不是每年都有),可以理解为入职奖金,后面「三年期」是指这笔费用分三年来发放完毕。

这里面不确定性比较高的,是 base 后面的系数,即年终奖的月数。

最高 18 薪,看着挺唬人,但根据往年经验,中位数大概在「14薪~15.5薪」之间。

至于「算法岗」嘛,基本上是上述「研发岗」往前挪一个岗位,也就是「算法白菜=研发SP」、「算法SP=研发SSP」。

至于算法岗同学对此的看法,也是和研发岗的一致:

alt

...

回归主题。

来一道和「秋招」相关的算法题。

题目描述

平台:LeetCode

题号:810

黑板上写着一个非负整数数组 nums[i]

AliceBob 轮流从黑板上擦掉一个数字,Alice 先手。

如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身;如果无数字剩余,按位异或运算结果为 0。)

换种说法就是,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果等于 0,这个玩家获胜。

假设两个玩家每步都使用最优解,当且仅当 Alice 获胜时返回 true

示例:

输入: nums = [1, 1, 2]

输出: false

解释: 
Alice 有两个选择: 擦掉数字 1 或 2。
如果擦掉 1, 数组变成 [1, 2]。剩余数字按位异或得到 1 XOR 2 = 3。那么 Bob 可以擦掉任意数字,因为 Alice 会成为擦掉最后一个数字的人,她总是会输。
如果 Alice 擦掉 2,那么数组变成[1, 1]。剩余数字按位异或得到 1 XOR 1 = 0。Alice 仍然会输掉游戏。

提示:

基本分析

这是一道「博弈论」题。

如果没接触过博弈论,其实很难想到,特别是数据范围为 ,很具有迷惑性。

如果接触过博弈论,对于这种「判断先手后手的必胜必败」的题目,博弈论方向是一个优先考虑的方向。

根据题意,如果某位玩家在操作前所有数值异或和为 ,那么该玩家胜利。要我们判断给定序列时,先手是处于「必胜态」还是「必败态」,如果处于「必胜态」返回 True,否则返回 False

对于博弈论的题目,通常有两类的思考方式:

  1. 经验分析:见过类似的题目,猜一个性质,然后去证明该性质是否可推广。
  2. 状态分析:根据题目给定的规则是判断「胜利」还是「失败」来决定优先分析「必胜态」还是「必败态」时具有何种性质,然后证明性质是否可推广。

博弈论

「对于本题,给定的是判断「胜利」的规则(在给定序列的情况下,如果所有数值异或和为 可立即判断胜利,其他情况无法立即判断胜负),那么我们应该优先判断何为「先手必胜态」,如果不好分析,才考虑分析后手的「必败态」。」

接下来是分情况讨论:

1. 如果给定的序列异或和为 ,游戏开始时,先手直接获胜:

由此推导出性质一:「给定序列 nums 的异或和为 ,先手处于「必胜态」,返回 True。」

2. 如果给定序列异或和不为 ,我们需要分析,先手获胜的话,序列会满足何种性质:

显然如果要先手获胜,则需要满足「**先手去掉一个数,剩余数值异或和必然不为 ;同时后手去掉一个数后,剩余数值异或和必然为 **」。

换句话说,我们需要分析「什么情况下「经过一次后手操作」后,序列会以上述情况 的状态,回到先手的局面」

也就是反过来分析想要出现「后手必败态」,序列会有何种性质。

假设后手操作前的异或和为 ),「后手必败态」意味着去掉任意数字后异或和为

同时根据「相同数值异或结果为 」的特性,我们知道去掉某个数值,等价于在原有异或和的基础上异或上这个值。

则有:

由于是「后手必败态」,因此 取任意一位,都满足上述式子。

则有:

同时根据「任意数值与 异或数值不变」的特性,我们将每一项进行异或:

根据交换律进行变换:

再结合 为原序列的异或和可得:

至此,我们分析出当处于「后手必败态」时,去掉任意一个数值会满足上述式子。

根据「相同数值偶数次异或结果为 」的特性,可推导出「后手必败态」会导致交回到先手的序列个数为偶数,由此推导后手操作前序列个数为奇数,后手操作前一个回合为偶数。

到这一步,我们推导出想要出现「后手必败态」,先手操作前的序列个数应当为偶数。

那么根据先手操作前序列个数为偶数(且异或和不为 ),是否能够推导出必然出现「后手必败态」呢?

「显然是可以的,因为如果不出现「后手必败态」,会与我们前面分析过程矛盾。」

假设先手操作前异或和为 (序列数量为偶数,同时 ),如果最终不出现「后手必败态」的话,也就是先手会输掉的话,那么意味着有 ,其中 为序列的任意位置。利用此性质,像上述分析那样,将每一项进行展开异或,会得到奇数个 异或结果为 ,这与开始的 矛盾。

由此推导出性质二:「只需要保证先手操作前序列个数为偶数时就会出现「后手必败态」,从而确保先手必胜。」

「综上,如果序列 nums 本身异或和为 ,天然符合「先手必胜态」的条件,答案返回 True ;如果序列 nums 异或和不为 ,但序列长度为偶数,那么最终会出现「后手必败态」,推导出先手必胜,答案返回 True。」

Java 代码:

class Solution {
    public boolean xorGame(int[] nums) {
        int sum = 0;
        for (int i : nums) sum ^= i;
        return sum == 0 || nums.length % 2 == 0;
    }
}

C++ 代码:

class Solution {
public:
    bool xorGame(vector<int>& nums) {
        int sumv = 0;
        for (int i : nums) sumv ^= i;
        return sumv == 0 || nums.size() % 2 == 0;
    }
};

Python 代码:

class Solution:
    def xorGame(self, nums: List[int]) -> bool:
        sumv = 0
        for i in nums:
            sumv ^= i
        return sumv == 0 or len(nums) % 2 == 0

TypeScript 代码:

function xorGame(nums: number[]): boolean {
    let sum = 0;
    for (const i of nums) sum ^= i;
    return sum === 0 || nums.length % 2 === 0;
};
  • 时间复杂度:
  • 空间复杂度:

总结

事实上,在做题的时候,我也是采取「先假定奇偶性,再证明」的做法,因为这样比较快。

但「假定奇偶性」这一步是比较具有跳跃性的,这有点像我前面说到的「经验分析解法」,而本题解证明没有做任何的前置假定,单纯从「先手必胜态」和「后手必败态」进行推导,最终推导出「先手序列偶数必胜」的性质 ,更符合前面说到的「状态分析解法」。

两种做法殊途同归,在某些博弈论问题上,「经验分析解法」可以通过「归纳」&「反证」很好分析出来,但这要求选手本身具有一定的博弈论基础;而「状态分析解法」则对选手的题量要求低些,逻辑推理能力高些。

两种方法并无优劣之分,都是科学严谨的做法。

最后

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

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

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

欢迎关注,明天见。

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

劝退计算机视觉是指一些人或机构认为计算机视觉领域发展已经陷入瓶颈,建议学生或研究者转向其他领域进行研究或学习。我认为对于劝退计算机视觉的观点,我们需要进行客观的评估和判断。 首先,虽然计算机视觉领域在某些问题上面临挑战,但它仍然是一个充满活力和发展潜力的领域。计算机视觉在许多实际应用中具有重要值,如图像识别、智能驾驶、医学影像等。随着技术的不断发展和创新,我们可以期待计算机视觉领域仍然有很多未被发掘的机会和问题等待解决。 其次,计算机视觉作为人工智能领域的一个重要分支,与其他领域的交叉融合也具有广阔的前景。例如,计算机视觉与自然语言处理、机器学习、图像生成等领域的结合,可以推动更多复杂任务的解决。因此,有时在计算机视觉领域遇到困难时,可以考虑从多个角度思考和解决问题,而不是轻易放弃。 最后,个人的兴趣和热情也是选择研究方向的重要因素。如果你对计算机视觉领域充满兴趣,并且愿意投入时间和精力进行深入学习和研究,那么劝退计算机视觉可能不是一个明智的选择。相反,你可以通过深入研究和不断学习来应对挑战,并为该领域的发展做出贡献。 综上所述,劝退计算机视觉是一个有争议的观点。我认为我们应该客观评估计算机视觉领域的发展前景,并根据个人兴趣和热情做出选择。无论选择哪个领域,都需要坚持学习和创新,为科学技术的进步做出自己的贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值