大家好,我是苍何。
来了,终于来了,京东带着开奖的消息来了,看看这薪资,真是逆天,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
解题思路
本题要求时间复杂度为 O (log n),因此我们可以利用 二分查找 来高效地找到目标值的起始和结束位置。
首先使用二分查找找到目标值的 起始位置(第一个出现的位置):
通过不断将搜索范围缩小,定位到第一个等于
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
你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪
点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。
感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【京东】,在后台回复【京东】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。
注意,后台(不是评论区,是后台)回复【京东】即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
就像大家之前回复【八股】一样。