京东开奖,薪资太逆天了。。。

文摘   2024-11-08 14:08   湖北  
这是苍何的第 223 篇原创!

超简约型简历模板免费下载,助力好 offer!

大家好,我是苍何。

来了,终于来了,京东带着开奖的消息来了,看看这薪资,真是逆天,34k * 19。

这 SSP 都快成 SSSP 了叭。

整理了下目前开奖的一些情况:

1、京东北京算法,硕士 985,38 k * 16

2、京东北京后端,硕士 211,SSP,34 k * 19

3、京东北京后端,白菜价,25.5 k

4、京东北京前端,硕士,SP,29 k * 19

5、京东北京后端,SP,29 k * 19,实习转正,电话直接开的

6、京东零售,北京后端开发,硕士 985,SP,25.5 k * 19,hr说这是sp,月薪 25.5 中有 0.8 是固定 base,剩下 0.2 是绩效。是零售中的核心业务,工作强度较大。

目前来看,京东这次开奖还是很给力的,特别是 SP,SSP 有些甚至有点逆天了。

而且啊今年京东的涨薪也一直在路上,怎么说,这是要搞大事啊。

  • 2024 年初,超 2 万名京东一线客服员工,平均薪酬上涨超过 30%;

  • 2024 年 8 月,京东 2025 校招启动,开放 18000 个岗位,校招生薪酬再次上调平均 20%。

  • 2024 年 9 月 13 日,京东再次宣布零售和其他部门,两年时间,再由 16 薪逐步加到 20 薪。

京东各岗位的职级薪资,之前苍何也有做过整理,现在再贴一次吧,希望能帮助到已经拿到 offer 或者想进军京东的小伙伴们。

这是京东的职级情况:

这是职级对应的薪资范围:

保命申明:
数据不一定完全准确,职级薪资会不断更新,实际可能受到的影响因素也多,如果有出入的地方轻点锤,长得好看也不行。

好啦,关于京东这波开奖,你怎么看?欢迎评论区讨论。

...

回归主题。

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

题目描述

平台:牛客

题号:34

题目名称:在排序数组中查找元素的第一个和最后一个位置

题目描述:
给你一个按非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

要求实现时间复杂度为 O (log n) 的算法解决此问题。

示例 1:

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]

示例 2:

输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]

示例 3:

输入:nums = [], target = 0
输出:[-1,-1]

提示:

  • 0 <= nums.length <= 10^5

  • -10^9 <= nums[i] <= 10^9

  • nums 是一个非递减数组

  • -10^9 <= target <= 10^9


解题思路

  1. 本题要求时间复杂度为 O (log n),因此我们可以利用 二分查找 来高效地找到目标值的起始和结束位置。

  2. 首先使用二分查找找到目标值的 起始位置(第一个出现的位置):

  • 通过不断将搜索范围缩小,定位到第一个等于 target 的位置。

  • 然后再使用二分查找找到目标值的 结束位置(最后一个出现的位置):

    • 同样通过二分查找定位到最后一个等于 target 的位置。

  • 如果在查找过程中没有找到 target,则返回 [-1, -1]

  • 代码实现

    Java 代码

    public class Solution {
    public int[] searchRange(int[] nums, int target) {
    int[] result = {-1, -1};
    // 查找起始位置
    result[0] = findStartingPosition(nums, target);
    // 查找结束位置
    result[1] = findEndingPosition(nums, target);
    return result;
    }

    private int findStartingPosition(int[] nums, int target) {
    int left = 0, right = nums.length - 1;
    int start = -1;
    while (left <= right) {
    int mid = left + (right - left) / 2;
    if (nums[mid] >= target) {
    right = mid - 1;
    } else {
    left = mid + 1;
    }
    if (nums[mid] == target) start = mid;
    }
    return start;
    }

    private int findEndingPosition(int[] nums, int target) {
    int left = 0, right = nums.length - 1;
    int end = -1;
    while (left <= right) {
    int mid = left + (right - left) / 2;
    if (nums[mid] <= target) {
    left = mid + 1;
    } else {
    right = mid - 1;
    }
    if (nums[mid] == target) end = mid;
    }
    return end;
    }
    }

    C++代码

    #include <vector>
    using namespace std;

    class Solution {
    public:
    vector<int> searchRange(vector<int>& nums, int target) {
    return {findStartingPosition(nums, target), findEndingPosition(nums, target)};
    }

    private:
    int findStartingPosition(vector<int>& nums, int target) {
    int left = 0, right = nums.size() - 1;
    int start = -1;
    while (left <= right) {
    int mid = left + (right - left) / 2;
    if (nums[mid] >= target) {
    right = mid - 1;
    } else {
    left = mid + 1;
    }
    if (nums[mid] == target) start = mid;
    }
    return start;
    }

    int findEndingPosition(vector<int>& nums, int target) {
    int left = 0, right = nums.size() - 1;
    int end = -1;
    while (left <= right) {
    int mid = left + (right - left) / 2;
    if (nums[mid] <= target) {
    left = mid + 1;
    } else {
    right = mid - 1;
    }
    if (nums[mid] == target) end = mid;
    }
    return end;
    }
    };

    Python 代码

    from typing import List

    class Solution:
    def searchRange(self, nums: List[int], target: int) -> List[int]:
    # 查找起始位置
    start = self.findStartingPosition(nums, target)
    # 查找结束位置
    end = self.findEndingPosition(nums, target)
    return [start, end]

    def findStartingPosition(self, nums: List[int], target: int) -> int:
    left, right = 0, len(nums) - 1
    start = -1
    while left <= right:
    mid = left + (right - left) // 2
    if nums[mid] >= target:
    right = mid - 1
    else:
    left = mid + 1
    if nums[mid] == target:
    start = mid
    return start

    def findEndingPosition(self, nums: List[int], target: int) -> int:
    left, right = 0, len(nums) - 1
    end = -1
    while left <= right:
    mid = left + (right - left) // 2
    if nums[mid] <= target:
    left = mid + 1
    else:
    right = mid - 1
    if nums[mid] == target:
    end = mid
    return end

    复杂度分析

    • 时间复杂度:O (log n),因为我们使用了二分查找。

    • 空间复杂度:O (1),只使用了常数的额外空间。

    ending

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

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

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

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

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

    【我爱这个魔幻的世界】

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