京东宣布研发岗加到20薪,别人贪婪我恐惧。。。

文摘   2024-11-14 11:30   上海  

又一次看到京东高调宣布加薪的消息,距离京东上次加薪仅仅过去 2 个多月。

这次京东科技宣布「技术研发岗」将给出平均 20 个月的薪酬。

配合其最近开奖,开出 offer 的同学表示「高到离谱」,薪资太逆天了。

这波京东薪资已经高的让人有些怀疑人生了,看到很多在校生喜不胜收,我反而有一些担忧。

世界知名股神巴菲特有句名言:"别人恐惧我贪婪,别人贪婪我恐惧",中国也有句老话叫做"事出反常必有妖"。

讲真的,从现象来看,就像是王婆卖瓜,不过是自卖他夸,说到加薪这事,我们梳理下京东今年的大动作。

  • 1、2021 年 7 月 1 日开始,京东用两年时间将员工平均年薪由原来的 14 薪逐步涨至 16 薪,直接加 2 个月年终。
  • 2、2024 年 1 月 1 日起,京东采销年固定薪酬大幅上调 100%;
  • 3、2024 年初,超 2 万名京东一线客服员工,平均薪酬上涨超过 30%;
  • 4、2024 年 8 月,京东 2025 校招启动,开放 18000 个岗位,校招生薪酬再次上调平均 20%。
  • 5、2024 年 9 月 13 日,京东再次宣布零售和其他部门,两年时间,再由 16 薪逐步加到 20 薪。
  • 6、2024 年 11 月 11 日,京东科技宣布「技术研发岗」将给出平均 20 个月的薪酬。

你看这波操作下来,无非是想证明,大京东福利给力,我给的起,说明我业绩好我愿意给,这波舆论下来,风评是不是立马拉上来了。

至于实际加没加,那就不得而知了。毕竟不是 base 薪资,最后能不能发,还不知道了,如果是高级大饼,那我只想说,这饼,吃吃就得了。

现在,我个人觉得吧,真正想为员工谋福利,那就干脆高调宣布,我司不允许加班,下班后和工作相关的事一律不许做。

那才真是值得打工人歌颂,至少我没看到有哪家公司有这个胆量。

目前这行情啊,基本上选择 offer就涂两点,要么就图个 WLB,要么就图个基本工资高。

注意这里说的是月Base,也就是你每月的月工资,而不是年终、股票等一系列镜中月水中花。

因为到头来,你大概率就会发现那些说的天花乱坠的福利,真的还不及到手的钱来得实在。

...

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

题目描述

平台:LeetCode

题号:215

题目描述:数组中的第 K 个最大元素

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O (n) 的算法来解决此问题。

示例 1

输入:

nums = [3,2,1,5,6,4], k = 2

输出:

5

示例 2

输入:

nums = [3,2,3,1,2,4,5,5,6], k = 4

输出:

4

提示

  • (1 \leq k \leq \text{nums. length} \leq 10^5)
  • (-10^4 \leq \text{nums}[i] \leq 10^4)

解题思路

  1. 快速选择法:利用快速选择(Quickselect)算法,这是快速排序的一种变体,能够在期望时间 (O (n)) 内找到第 k 大的元素。通过递归划分数组区域,直到找到目标位置。
  2. 最小堆:使用大小为 k 的最小堆存储当前最大的 k 个元素。当堆中元素超过 k 个时,移除堆顶最小值。最终,堆顶元素即为第 k 大元素。时间复杂度为 (O (n \log k)),适合较大 k 值的情况。

在这里,我们使用最小堆来实现解法。

代码实现

Java 代码:

import java.util.PriorityQueue;

public class Solution {
    public int findKthLargest(int[] nums, int k) {
        // 创建一个大小为 k 的最小堆
        PriorityQueue<Integer> minHeap = new PriorityQueue<>(k);
        
        // 遍历数组,将每个元素加入最小堆
        for (int num : nums) {
            minHeap.offer(num);
            // 如果堆中的元素数量超过 k,移除堆顶元素
            if (minHeap.size() > k) {
                minHeap.poll();
            }
        }
        
        // 最小堆的堆顶元素即为第 k 大的元素
        return minHeap.peek();
    }
}

C++代码:

#include <vector>
#include <queue>

class Solution {
public:
    int findKthLargest(std::vector<int>& nums, int k) {
        // 创建一个大小为 k 的最小堆
        std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap;
        
        // 遍历数组,将每个元素加入最小堆
        for (int num : nums) {
            minHeap.push(num);
            // 如果堆中的元素数量超过 k,移除堆顶元素
            if (minHeap.size() > k) {
                minHeap.pop();
            }
        }
        
        // 最小堆的堆顶元素即为第 k 大的元素
        return minHeap.top();
    }
};

Python 代码:

import heapq

class Solution:
    def findKthLargest(self, nums, k):
        # 创建大小为 k 的最小堆
        min_heap = []
        
        # 遍历数组,将每个元素加入最小堆
        for num in nums:
            heapq.heappush(min_heap, num)
            # 如果堆中的元素数量超过 k,移除堆顶元素
            if len(min_heap) > k:
                heapq.heappop(min_heap)
        
        # 最小堆的堆顶元素即为第 k 大的元素
        return min_heap[0]

复杂度分析

  • 时间复杂度:(O (n \log k)),其中 (n) 是数组的长度。每次插入和移除堆顶元素的时间复杂度为 (O (\log k))。
  • 空间复杂度:(O (k)),用于存储最小堆中的元素。

好文推荐

后端训练营,主打一个突击!

工作小半年,已经磨灭了我对技术的全部热情


你好,我是阿秀,普通学校毕业,校招时拿到字节跳动SP、百度、华为、农业银行等6个互联网中大厂offer,这是我在校期间的编程学习之路,详细记录了我是如何自学技术以应对第二年的校招秋招的。

毕业后我先于抖音部门担任全栈开发工程师,目前在上海某外企带领团队继续从事全栈开发,负责的项目已经顺利盈利300w+。在研三那年就组建了一个阿秀的学习圈,一直持续分享校招/社招跳槽找工作的经验,都是自己一路走过来的经验,目前已经累计服务超过 4000 +人,欢迎点此了解一二。

拓跋阿秀
前字节跳动抖音全栈开发,现某外企项目负责人,分享求职、校招、职场等内容,我的学习笔记网站:interviewguide.cn
 最新文章